下面代码可以用来求最长上升子序列(LIS)的长度,如果输入是:5 1 7 3 5 9,则输出是( )。
int a[2023], f[2023];
int main()
{
int n, i, j, ans = -1;
cin>>n;
for( i=1; i<=n; i++){
cin >> a[i];
f[i] = 1;
}
for( i=1; i<=n; i++)
for( j=1; j<i; j++)
if(a[j] < a[i])
f[i] = max(f[i], f[j]+1);
for( i=1; i<=n; i++){
ans = max(ans, f[i]);
cout << f[i] << " ";
}
cout << ans << endl;
return 0;
}
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析