习题3.4 最长连续递增子序列(20 分)浙大版《数据结构(第2版)》题目集
Posted 给杰瑞一块奶酪~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了习题3.4 最长连续递增子序列(20 分)浙大版《数据结构(第2版)》题目集相关的知识,希望对你有一定的参考价值。
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数n(≤10?5??);第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:
15
1 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:
3 4 6 8
代码:
#include <iostream> using namespace std; int main() { int n,r = 0,c = 1,maxi = 0; int num[100000]; cin>>n; for(int i = 0;i < n;i ++) { cin>>num[i]; } for(int i = 1;i < n;i ++) { if(num[i] <= num[i - 1]) { if(c > maxi)maxi = c,r = i - 1; c = 1; continue; } c ++; } if(c > maxi)maxi = c,r = n - 1; for(int i = maxi - 1;i >= 0;i --) { if(i == maxi - 1)cout<<num[r - i]; else cout<<‘ ‘<<num[r - i]; } }
以上是关于习题3.4 最长连续递增子序列(20 分)浙大版《数据结构(第2版)》题目集的主要内容,如果未能解决你的问题,请参考以下文章
习题2.5 两个有序链表序列的合并(15 分)浙大版《数据结构(第2版)》题目集
习题3.9 堆栈操作合法性(20 分)浙大版《数据结构(第2版)》题目集