pta 习题集 5-5 最长连续递增子序列 (dp)
来源:互联网 发布:centos输入法设置 编辑:程序博客网 时间:2024/05/09 19:48
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(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 <string.h>#include <stdlib.h>#include <stdio.h>#include <math.h>#include <string>#include <map>using namespace std;const int maxn=1e5;int n;int a[maxn+5];int dp[maxn+5];int search(int num,int l,int r){int mid;while(l<=r){mid=(l+r)/2;if(num>dp[mid])l=mid+1;elser=mid-1;}return l;}int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);}memset(dp,0,sizeof(dp));dp[1]=1;for(int i=2;i<=n;i++){if(a[i]>a[i-1])dp[i]=dp[i-1]+1;elsedp[i]=1;}int max=0;int pos=0;for(int i=n;i>=1;i--){if(max<=dp[i]){max=dp[i];pos=i;}}for(int i=pos-dp[pos]+1;i<=pos;i++){if(i!=pos)printf("%d ",a[i]);elseprintf("%d\n",a[i]);}return 0;}
0 0
- pta 习题集 5-5 最长连续递增子序列 (dp)
- PTA 最长连续递增子序列
- 5-2 最长连续递增子序列
- 最长公共子序列 最长递增子序列(和) 最长递增公共子序列 最长(连续)子序列乘积(HDU)--dp
- 5-3 最长连续递增子序列 (20分)
- 5-1 最长连续递增子序列
- 5-1 最长连续递增子序列 (20分)
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 最长递增子序列!!!(DP ,二分)
- 最长递增子序列(dp)
- 最长递增子序列 (dp)
- 最长递增子序列 - dp
- 最长递增子序列dp
- java中线程队列BlockingQueue的用法
- Retinex实例
- L1-023. 输出GPLT
- 《趣学Python编程》笔记---第一部分:学习编程(1)
- 自定义控件--跑马灯效果的实现
- pta 习题集 5-5 最长连续递增子序列 (dp)
- 第十三周:113. Path Sum II
- 在3D打印的时候,不要给电脑拔出其他的USB设备
- ElasticSearch入门 —— 集群搭建
- C++基础复习·一
- 第四届蓝桥杯 省赛 JavaB组 世纪末的星期
- 影院售票系统
- 在自己的app中调用其他浏览器显示网页
- 虚函数表长什么样