#include<bits/stdc++.h>
using namespace std;
int n;
int a[1005],f[1005];
int main() {
int i, j;
cin>> n; int ans=0;
for (i=0; i<n; i++)cin>>a[i];
for (i=0; i<n; ++i) {
f[i] = 1;
for(j= i-1; j>=0; --j)
if(a[i]>a[j])f[i]= max(f[i],f[j]+1);
ans =max(ans,f[i]);
}
cout<< ans<<"\n";
return 0;
}
输入保证是正整数n以及一个长度为n的数组,且相邻元素之间没有空格。如下例:
判断题
1) 若将第6行的“int i,j”改为“int i;”,则程序会出现编译错误。( )
2) 若将第12行的a[i]>a[j]改为a[i]<a[j],运行结果不变。( )
3) f[i]表示以i结尾的最长不下降子序列长度。( )
4) 若把第9行的"i=0;"换成"i=1;",则程序运行结果不变。( )
选择题
5) 若n= 100,则ans的最大值是( )。
6) 若n=15,a= {5,7,6,8,1,3,5,4,2,9,14,11,12,8,7},则ans的值为( )