1 7 3 5 9 4 8 找上升子序列(1,7,9),(1,3,4,8)·········,最大为4
#include<iostream>
#include<algorithm>
using namespace std;
const int Max = 1010;
int nums[Max];
int maxLen[Max];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> nums[i];
maxLen[i] = 1;
}
for (int i = 2; i <=n; i++)
{
//每次求以第i个数为终点的最长上升子序列的长度
for (int j = 1; j < i; j++)
{
//查看以第j个数为终点的最长上升子序列
if (nums[i]>nums[j])
{
maxLen[i] = max(maxLen[i],maxLen[j]+1);
}
}
}
cout << *max_element(maxLen+1,maxLen+n+1);//返回最大
return 0;
}