#include<iostream>
#include<cstring>
using namespace std;
int Arr[10000] = { 0 }, dp[10000] = { 0 };
int main()
{
int N = 0, i = 0,j=0,maxlength=0;
cin >> N;
for (i = 0; i < N; i++)
dp[i] = 1;
for (i = 0; i < N; i++)
cin >> Arr[i];
for (i = 0; i < N; i++){//对位置i向前进行动态规划
for (j = 0; j < i; j++){
if (Arr[j] < Arr[i] && dp[i] <= dp[j]){
dp[i] = dp[j] + 1;
}
}
for (j = 0; j < N; j++){
if (dp[j]>maxlength)
maxlength = dp[j];
}
}
cout << maxlength << endl;
return 0;
}
poj2533 动态规划+最长上升子序列
最新推荐文章于 2020-03-25 23:04:39 发布