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

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

#include
#include
#include
#include
#include
#include
using namespace std;int a[40005],d[40005];int main(){ int n; scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&a[i]); if (n==0) //0个元素特判一下 { printf("0\n"); return 0; } d[1]=a[1];//初始化 int len=1; for (int i=2;i<=n;i++) { if (a[i]>=d[len]) d[++len]=a[i];//如果可以接在len后面就接上,如果是最长上升子序列,这里变成> else//否则就找一个最该替换的替换掉 { int j=upper_bound(d+1,d+len+1,a[i])-d;//找到第一个大于它的d的下标,如果是最长上升子序列,这里变成lower_bound d[j]=a[i]; } } printf("%d\n",len); return 0;}

 

转载于:https://www.cnblogs.com/water-radish/p/9286299.html

你可能感兴趣的文章
mysql 生成随机手机号和随机中文名
查看>>
磁盘 IO 和网络 IO 该如何评估、监控、性能定位和优化?
查看>>
【iOS 开发】父视图外部子视图点击响应 - hitTest
查看>>
Android仿简书长按文章生成图片效果
查看>>
linux安装redis内存数据库
查看>>
官方实锤!微软宣布以 75 亿美元收购 GitHub
查看>>
vuejs深入浅出—基础篇
查看>>
View的绘制过程
查看>>
AI助力机器人市场,机器人升级2.0迫在眉睫
查看>>
Android Studio: Plugin with id 'android-library' not found
查看>>
前端css性能优化
查看>>
git的学习
查看>>
算法导论——动态规划
查看>>
Android--高德地图自动定位
查看>>
面试官,您要的快排
查看>>
akka设计模式系列-Aggregate模式
查看>>
webpack4-用之初体验,一起敲它十一遍
查看>>
Redis详解(五)------ redis的五大数据类型实现原理
查看>>
Spring【DAO模块】就是这么简单
查看>>
wamp虚拟主机配置
查看>>