#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[1001];
int dp[1001];//dp数组中dp[i]代表以a[i]结尾的LIS(longest increasing subsequence)的长度
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int t=0;
for(int i=0;i<n;i++)
{
dp[i]=1; //遍历整个dp数组,LIS至少为1
for(int j=0;j<i;j++)
{
if(a[j]<a[i])
dp[i]=max(dp[i],dp[j]+1);
}
t=max(t,dp[i]); //这一步非常重要!!!
}
cout<<t<<endl;
return 0;
}
1299最长上升子序列
最新推荐文章于 2019-04-21 23:54:33 发布