A657.LIS最长上升子序列
2024-09-06 20:52:01
发布于:广东
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
const int MAXN=10000+5;
vector<int>q;//定义两个动态数组 q,l;
vector<int>l;
//LIS 线性动态
int main(){
int n,sum=0;
cin>>n;
for(int i=0;i<n;i++){
int x;
cin>>x;
q.push_back(x);//vector是push_back不是push;
x=1;
l.push_back(x);//把l[i]初始化为1;
}
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){//你追我赶;
if(q[i]>q[j]){
l[i]=max(l[i],l[j]+1);//如果找到,将l最长子序列+1;
}
}
sum=max(sum,l[i]);//记录现在最大子序列;
}
cout<<sum;
return 0;
}
这里空空如也
有帮助,赞一个