基础的最长递增子序列,递推式
代码如下,时间复杂度O(n*n)
#include <iostream>
using namespace std;
#define maxn 1000+10
int data[maxn];
int dp[maxn];
int main()
{
int num;
cin>>num;
for(int i=1;i<=num;i++)
cin>>data[i];
dp[1] = 1;
for(int j=2;j<=num;j++){
dp[j] = 1; //注意初始化为1
for(int i =1;i<j;i++){
if(data[i] < data[j] && (dp[i]+1) > dp[j])
dp[j] = dp[i] + 1;
}
}
int ans = 0;
for(int i=1;i<=num;i++)
if(dp[i] > ans)
ans = dp[i];
cout<<ans<<endl;
return 0;
}