习题3.4 最长连续递增子序列
2017-09-16 11:31
691 查看
习题3.4 最长连续递增子序列(20 分)
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。AC代码:
/*最长连续递增子序列*/ #include<stdio.h> struct node { int b;//存储当前数的数值 int k;//记录该数开始的递增情况 } s[100001]; int main() { int i,j; int n; int maxi=1,c; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&s[i].b); for(i=0;i<n;i++) s[i].k=1; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { //判断是否为递增的,后面的大于前面的,即为递增 if(s[j].b>s[j-1].b) s[i].k++; else break; } } for(i=0;i<n;i++) { if(s[i].k>maxi) //连续递增的数的个数大于当前最大值 { maxi=s[i].k; c=i;//从i开始的序列 } } for(i=c;i<c+maxi-1;i++) printf("%d ",s[i].b); printf("%d\n",s[c+maxi-1].b); return 0; }
相关文章推荐
- 最长连续递增子序列
- 5-1 最长连续递增子序列
- 最长连续递增子序列
- 最长单调"连续"递增子序列
- 湖北民族学院oj 1668 之 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 习题3.4 最长连续递增子序列
- 最长连续递增子序列
- 用二分法寻找最长连续单调递增子序列
- HDU 3308——LCIS(线段树,区间合并,最长连续递增子序列)
- 最长连续递增子序列
- 51Nod - 1241 特殊的排序(求最长连续递增子序列)
- 【EPI-6.6】最长连续递增子序列-启发式搜索
- 求数组中最长连续递增子序列
- [LintCode] Longest Increasing Continuous Subsequence 最长连续递增子序列
- 线段树区间合并+最长连续递增子序列——HDU 3308
- 最长连续递增子序列
- 5-2 最长连续递增子序列
- 矩阵中最长连续递增子序列