1.考虑只有一个数字的情况。
2.好像数据中没有输入0个数字的情况。
#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define MAX 1010
int a[MAX];
int dp[MAX];
int n;
int LIS()
{
int max_=1;
for(int i=2;i<=n;i++)
{
dp[i]=1;
for(int j=1;j<i;j++)
{
if(a[i]>a[j]&&dp[i]<dp[j]+1)
{
dp[i]=dp[j]+1;
if(max_<dp[i])
{
max_=dp[i];
}
}
}
}
return max_;
}
int main()
{
dp[1]=1;
while(scanf("%d",&n)==1)
{
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
printf("%d\n",LIS());
}
return 0;
}