博客介绍了LIS(Longest Increasing Subsequence)和LCS(Longest Common Subsequence)的相关解法。对于LIS,有朴素三角dp和NlgN解法,也可排序+LCS;对于LCS,有朴素矩形dp、滚动数组dp和NlgN解法,滚动数组需先写矩形再优化,NlgN在重复元素多时有局限。
LIS:Longest Increasing Subsequence
朴素三角dp,注意初始化为1:
int ans =0;for(int i=0;i<N;i++){
dp[i]=1;//importantfor(int j=0;j<i;j++)if(A[i]> A[j])
dp[i]=max(dp[i], dp[j]+1);
ans =max(ans , dp[i]);}