博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1576 最长严格上升子序列
阅读量:6271 次
发布时间:2019-06-22

本文共 682 字,大约阅读时间需要 2 分钟。

题目描述 
Description

给一个数组a1, a2 ... an,找到最长的上升降子序列ab1<ab2< .. <abk,其中b1<b2<..bk。

输出长度即可。

输入描述 
Input Description

第一行,一个整数N。

第二行 ,N个整数(N < = 5000)

输出描述 
Output Description

输出K的极大值,即最长不下降子序列的长度

样例输入 
Sample Input

5

9 3 6 2 7

样例输出 
Sample Output

3

数据范围及提示 
Data Size & Hint

【样例解释】

最长不下降子序列为3,6,7

题解:

简单的序列dp!

代码:

#include <iostream>

#include <algorithm>

using namespace std;

int main(int argc, char** argv) {
int n;
cin>>n;
int i,j;
int a[5005],dp[5005];
for(i=1;i<=n;i++){
cin>>a[i];
dp[i]=1;
}
int ans=0;
for(i=1;i<n;i++){
for(j=i+1;j<=n;j++){
if(a[j]>a[i]) dp[j]=max(dp[i]+1,dp[j]);
if(dp[j]>ans) ans=dp[j];
}
}
cout<<ans<<endl;
return 0;
}

转载于:https://www.cnblogs.com/lhlacm/p/8551683.html

你可能感兴趣的文章
2016年收到的第一件礼物,被评上微软全球最有价值专家MVP(一)
查看>>
2016中国VR开发者论坛第一期
查看>>
Hyper-V 2016 系列教程5 Hyper-V 服务器基本属性
查看>>
北京、天津工厂自动监测数据爬取
查看>>
第一个python程序简单加法计算器
查看>>
在CentOS下安装Tomcat8
查看>>
Weblogic classloader分析
查看>>
做技术做软件-----如何才能拿到上万的月薪
查看>>
linux 查看当前路径命令:pwd
查看>>
At.js – 用于 Web 应用程序的自动完成库
查看>>
[Android Pro] Android权限设置android.permission完整列表
查看>>
如何对抗硬件断点--- 调试寄存器
查看>>
mybatis学习
查看>>
从不同层面看cocos2d-x
查看>>
Struts2技术详解
查看>>
MFC应用程序向导生成的文件
查看>>
Oracle体系结构之oracle密码文件管理
查看>>
【leetcode】Remove Element (easy)
查看>>
mysql多表查询及其 group by 组内排序
查看>>
alsa的snd_pcm_readi()函数和snd_pcm_writei()
查看>>