PTA 最长连续递增子序列
来源:互联网 发布:术大师淘宝论坛 编辑:程序博客网 时间:2024/05/20 16:32
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:
输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:
151 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:
3 4 6 8
解题思路:若一个数字比它前一个数字大,则长度加一,若长度大于最大长度,则更新最大长度,并标记下位置
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <vector>#include <set>#include <stack>#include <map>#include <climits>using namespace std;#define LL long longconst int INF=0x3f3f3f3f;int a[100005];int main(){ int n; while(~scanf("%d",&n)) { int k=1,ma=1,cnt=1; for(int i=1; i<=n; i++) scanf("%d",&a[i]); for(int i=2; i<=n; i++) { if(a[i]>a[i-1]) cnt++; else { if(ma<cnt) { ma=cnt; k=i-1; } cnt=1; } } if(ma<cnt) ma=cnt,k=n; printf("%d",a[k-ma+1]); for(int i=k-ma+2; i<=k; i++) printf(" %d",a[i]); printf("\n"); } return 0;}
0 0
- PTA 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- pta 习题集 5-5 最长连续递增子序列 (dp)
- 最长单调"连续"递增子序列
- 求最长连续递增子序列长度
- 单调递增连续最长子序列
- 最长递增子序列(非连续)
- 5-2 最长连续递增子序列
- 求最长连续递增公共子序列
- 矩阵中最长连续递增子序列
- 习题3.4 最长连续递增子序列
- 用二分法寻找最长连续单调递增子序列
- 求非连续最长单调递增子序列
- python 获取当天每个准点时间戳
- 344. Reverse String
- 初学java设计模式之工厂模式
- 并发编程实践2.1
- leetcode_75. Sort Colors
- PTA 最长连续递增子序列
- Hibernate中使用Criteria查询及注解——(Dept.java)
- 欢迎使用CSDN-markdown编辑器
- 【3.8】
- WebView使用小结----提示框的使用Alert,Confirm,Prompt.
- Linux 管道pipe
- Mysql数据库常用分库和分表方式
- 导入导出excel文件
- EasyDarwin云平台部署实践