最长上升子序列
来源:互联网 发布:mysql错误1054 编辑:程序博客网 时间:2024/06/05 17:30
lintcode题目链接
dp[i]表示以以i结尾的连续上升子序列长度,
dp[i] = (A[i]>A[i-1])?dp[i-1]+1:1,
其中还用到了贪心。
int longestIncreasingContinuousSubsequence(vector<int> &A) {
// write your code here
int n = A.size();
if(n<1){ return 0;}
if(n<2){return 1;}
vector<int> dp1(n,1);
vector<int> dp2(n,1);
dp1[0] = dp2[0]=1;
int glomax=0;
for(int i=1;i<n;i++)
{
dp1[i] = (A[i]>A[i-1])?dp1[i-1]+1:1;
dp2[i] = (A[i]<A[i-1])?dp2[i-1]+1:1;
glomax = max(glomax,max(dp1[i],dp2[i]));
}
return glomax;
}
阅读全文
0 0