[問題] 串列整數問題

作者: APE36 (PT鄉民)   2014-10-18 20:40:45
輸入為一串整數數列,請從中找到一個長度最長的遞增子串列並輸出,
選取其中和最大的子串列。例如:當輸入串列為1、7、6、5、8、9、2 時,
輸出為1、8、9
小弟我是想說(1,7),(6,5)這樣step by step解
最後在合併找出遞增序列輸出,但是好像不是這麼單純,
有人肯賜教幫忙這種題目要如何解決嗎??
感謝!!
作者: LPH66 (-6.2598534e+18f)   2014-10-18 20:44:00
關鍵字就是題目中的「最長遞增子串列」
作者: realmeat (真肉)   2014-10-18 22:40:00
我想問一下,為啥你舉例的輸出不是1, 7, 8, 9 ?
作者: HuangJC (吹笛牧童)   2014-10-19 17:24:00
感覺你不會解,是因為題目本身也有矛盾其實,人能了解,通常程式也就寫得出來了所謂的高下只在'能不能簡化它'而已但為了程式可讀性,我常不去簡化它開玩笑,我花錢買電腦是叫它替我解決問題很麻煩,就是它的責任;為什麼我要動腦筋 :P
作者: realmeat (真肉)   2014-10-19 22:39:00
其實我試寫了一個發現答案都是 1 7 8 9 =3=y-~
作者: popcorny (畢業了..@@")   2014-10-19 23:34:00
可以google看看Longest Increasing Subsequence
作者: swpoker (swpoker)   2014-10-20 09:15:00
commandto HuangJC:我簡化程式的目的其實是可讀性
作者: HuangJC (吹笛牧童)   2014-10-20 13:10:00
樓上,我接受你的講法,但這樣我很難把自己表達清楚 XD應該說,如果能兼顧可讀性的簡化,那你在描述題目時就已經要有不同的觀點了;也就是軟體工程前端的 spec,至於coding 那已經很後端了;這種人是紙上作業完後 coding 飛快。又如果你用了抽象概念,那就像中文的'成語'懂這個成語故事的人你不必多說廢話;但不懂的人你得先解釋廢話。演算法中的'成語'我理解成 common sense..a..應該說'解釋成語',打太快了 :P
作者: swpoker (swpoker)   2014-10-20 13:32:00
樓上~設計到實作就是會出現這種問題~此時就需要重構方法規劃而後實作會有兩個主要問題~過度設計或設計不足此時需要導入重構方法論檢視codin之後是否過猶不及
作者: HuangJC (吹笛牧童)   2014-10-20 20:47:00
這適合我學 XD;但在這問會挨罵"自己不做功課"最近學到一個詞,"碼農",YA,我是..我很願意多付出點耐心;但別人沒義務如此對我 :P這個世界很殘酷滴~

Links booklink

Contact Us: admin [ a t ] ucptt.com