最长上升子序列
动态规划
C++
公开
最长上升子序列.cpp
#include <iostream>
using namespace std;
int n,dp[10000000],a[10000000];
int main()
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) dp[i]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<i;j++)
{
if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1);
}
}
int ans=-2147483648;
for(int i=1;i<=n;i++)
{
ans=max(dp[i],ans);
}
cout<<ans;
return 0;
}