1. 程式人生 > >最長上升子序列 Longest Increasing Subsequence n^2和nlogn演算法

最長上升子序列 Longest Increasing Subsequence n^2和nlogn演算法

首先考慮一種情況,如果dp[i]==d[j],但是num[i]<num[j],那麼我們選擇那個好呢,顯然,選擇以num[i]為結尾的序列更優潛力,因為可能存在一個k,使得num[i] < num[k] < num[j],可以使以num[i]為結尾的序列變長,但卻不能使以num[j]為結尾的序列邊長。那麼我們如果知道長度為i的所有序列中結尾數字最小的那個數,就可以知道能否得到一個更長的序列,設用d[i]表示長度為i的序列結尾的最小數字,那麼我們就可以維護這個陣列,來求得最長公共子序列的長度。