#include<iostream>
#include<algorithm>
using namespace std;
int dp[200];
int ans=-1;//ans记录最大的dp[i]
int LIS(int A[],int n)
{
for(int i=1;i<=n;i++)
{
dp[i]=1;
for(int j=1;j<i;j++)
{
if(A[j]<A[i])//注意:序列是递增的
dp[i]=max(dp[i],dp[j]+1);//状态转移方程
}
ans=max(ans,dp[i]);
}
return ans;
}
int main()
{
int A[]={2,1,5,3,6,4,8,9,7};
int n=sizeof(A)/sizeof(A[0]);//不除以sizeof(A[0]),n=36;除以sizeof(A[0]),n=9。因为int为4位
cout<<"最长递增子序列的长度:" <<LIS(A,n);
return 0;
}