#include<iostream>
#include<vector>
using namespace std;
//计算最长增长子序列的长度
int getMaxLen(vector<int> data){
int len = data.size();
int dp[len+1]={1};//辅助数组
int maxLen = 0;
for(int i=0;i<len;i++)
for(int j=i-1;j>=0;j--)
if(data[i]>data[j] && dp[i]<=dp[j]+1){
dp[i]=dp[j]+1;
if(maxLen<dp[i])
maxLen = dp[i];
}
return maxLen;
}
int main(){
int n;
while(cin>>n){
vector<int> v;
int w;
for(int i=0;i<n;i++){
cin>>w;
v.push_back(w);
}
cout<<getMaxLen(v);
}
}
计算最长增长子序列(简单,暴力法)
最新推荐文章于 2025-10-05 13:31:47 发布
本文介绍了一种计算最长增长子序列长度的算法实现,并通过一个C++程序详细展示了该算法的具体应用过程。程序首先接收一组整数输入,然后利用动态规划方法找出序列中最长的增长子序列长度。

135

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



