资讯动态

最长上升子序列

发布时间:2026/10/18 5:32:23 来源:尧图企业网站定制
一个数的序列bi当b1 b2 ... bS的时候我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN)我们可以得到一些上升的子序列(ai1, ai2, ..., aiK)这里1 i1 i2 ... iK N。比如对于序列(1, 7, 3, 5, 9, 4, 8)有它的一些上升子序列如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4比如子序列(1, 3, 5, 8)。你的任务就是对于给定的序列求出最长上升子序列的长度。输入格式:输入的第一行是序列的长度N (1 N 1000)。第二行给出序列中的N个整数这些整数的取值范围都在0到10000。输出格式:最长上升子序列的长度。输入样例:在这里给出一组输入。例如7 1 7 3 5 9 4 8输出样例:在这里给出相应的输出。例如4解决方案#includestdio.h int max(int a,int b){ return ab ? a:b; } int arr[1000]; int main(){ int n; scanf(%d,n); for(int i1;in;i){ int num; scanf(%d,arr[i]); } int dp[1000]; int res0; for(int q1;qn;q){ dp[q]1; for(int w1;wq;w){ if(arr[q]arr[w]){ dp[q]max(dp[w]1,dp[q]); } } resmax(dp[q],res); } printf(%d,res); return 0; }

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑