一个数的序列 b i b_i bi,当 b 1 < b 2 < . . . < b S b_1
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
输入的第一行是序列的长度 N ( 1 ≤ N ≤ 1000 ) N(1≤N≤1000) N(1≤N≤1000)。第二行给出序列中的N个整数,这些整数的取值范围都在 0 0 0~ 10000 10000 10000。
最长上升子序列的长度。
7
1 7 3 5 9 4 8
4
#include
using namespace std;
int n,a[1145],f[1145],i,j,ans=1;
int main() {
cin>>n;
for(i=1;i<=n;i++) {
cin>>a[i];
}
for(i=1;i<=n;i++) {
f[i]=1;
}
for(i=1;i<=n;i++) {
for(j=1;j<i;j++) {
if(a[i]>a[j]) {
f[i]=max(f[j]+1,f[i]);
}
}
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}