Contents
Problem
Solution
LIS 方法可參考 http://www.csie.ntnu.edu.tw/~u91029/LongestIncreasingSubsequence.html#3
做 LIS 和 LDS,比較每個數字在 LIS 串和 LDS 串中的位置,挑選位置相同且最長的。
1 2 3 4 5 4 3 2 1 10
LIS 1 2 3 4 5 4 3 2 1 6
LDS 1 2 3 4 5 4 3 2 1 1
其中最長的會是 min(LIS[4],LDS[4]) = 5
,而其長度就是 5 * 2 - 1 = 9
這邊 LDS 的做法是採取從後面往前做 LIS。皆為 $O(nlogn)$ 。
Code
1 |
|