算法小白求助,最长不下降子序列
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin>>n;
int max1=1;
vector<int> a(n);
vector<int> dp(n,1);
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(a[i]>=a[j]){
dp[i]=max(dp[i],dp[j]+1);
}
else{
dp[i]=max(dp[i],1);
}
}
//dp[i] = *max_element(dp.begin(),dp.begin()+i+1);
}
int max_length = *max_element(dp.begin(), dp.begin()+n);
cout << max_length << endl;
}
这样求最长非递减子序列是对的,想问问大佬们,为啥使用注释地方的语句用例不能通过呢
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin>>n;
int max1=1;
vector<int> a(n);
vector<int> dp(n,1);
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(a[i]>=a[j]){
dp[i]=max(dp[i],dp[j]+1);
}
else{
dp[i]=max(dp[i],1);
}
}
//dp[i] = *max_element(dp.begin(),dp.begin()+i+1);
}
int max_length = *max_element(dp.begin(), dp.begin()+n);
cout << max_length << endl;
}
这样求最长非递减子序列是对的,想问问大佬们,为啥使用注释地方的语句用例不能通过呢
全部评论
相关推荐

点赞 评论 收藏
分享