題目連結
題意:
只知道跟船阿貨運有關係XD
題目給定一個 A ~ Z 組成的序列
(由小到大)
輸出該序列的最長遞增子序列 (LIS) 的長度
舉例:
ABAADEF
LIS 為 ABDEF,輸出 5
LIS 不一定要是連續的
而且為嚴格遞增
也就是任意前必小於後
(不能有重複)
像題目的 CBACBACBACBACBA
LIS 為 ABC,輸出 3
不能為 AABC 或 ABBC 之類的
解法:
用一個陣列 LIS[ ]
紀錄以某元素為結尾的 LIS 長度
由前而後 Greedy 掃一遍即可
舉例:
ABADEF,預設都是 1
以 B 為準,往前掃到 A
可以接在 A後面
B 的 LIS 就可以是 A 的 +1
不過若 B 本來就比較大,就不更動
程式(Java):
題意:
只知道跟船阿貨運有關係XD
題目給定一個 A ~ Z 組成的序列
(由小到大)
輸出該序列的最長遞增子序列 (LIS) 的長度
舉例:
ABAADEF
LIS 為 ABDEF,輸出 5
LIS 不一定要是連續的
而且為嚴格遞增
也就是任意前必小於後
(不能有重複)
像題目的 CBACBACBACBACBA
LIS 為 ABC,輸出 3
不能為 AABC 或 ABBC 之類的
解法:
用一個陣列 LIS[ ]
紀錄以某元素為結尾的 LIS 長度
由前而後 Greedy 掃一遍即可
舉例:
ABADEF,預設都是 1
以 B 為準,往前掃到 A
可以接在 A後面
B 的 LIS 就可以是 A 的 +1
不過若 B 本來就比較大,就不更動
程式(Java):
留言
張貼留言