#include<iostream>
#include<algorithm>
using namespace std;
int len[5001] , a[5001];
int main()
{
int i,j,n;
int max;
cin>>n; //注意输入不要漏啊
for(i = 1; i <= n; i++)
{
cin>>a[i];
}
len[n] = 1;
for(i = n-1; i >= 1; i--)
{
max = 0;
for(j = i; j <= n; j++)
{
if(a[i] < a[j] && max < len[j])
{
max = len[j];
}
}
len[i] = max + 1;
}
sort(len,len+n+1);
cout<<len[n]<<endl;
return 0;
}
本人很水,方法也很水...望轻喷
(其实 最长严格上升 和 最长上升 有什么区别?查找ing.....)
*************************************************************************************仅供吐槽
本文分享了一个求解最长递增子序列问题的C++实现,通过动态规划的方法找到序列中最大递增子序列的长度,并使用标准库函数进行排序以简化结果输出。

423

被折叠的 条评论
为什么被折叠?



