博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最长递增子序列(只求大小)模板
阅读量:5981 次
发布时间:2019-06-20

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

#include
#include
#include
#include
using namespace std;#define maxn 40005int main(){ int a[8] = {
5,4,6,8,7,10,3,6}; int f[10]; f[0] = 1; int ans = 0; for(int i=1;i<8;i++){ f[i] = 1; for(int j=0;j
f[i]-1){
//之所以是大于f[i]-1是因为要保证现在的递增子序列是最长的 f[i] = f[j] + 1;//加一加的是本身这个数 } } ans = max(ans,f[i]);//ans求的是最长的长度,最后一个不一定是最长的 } cout << ans << endl; return 0;}

用二分法加快了查找符合条件的数构成递增子序列的过程

 

#include 
#include
#include
#include
using namespace std;int main(){ int a[8] = {
5,4,6,8,7,10,3,6}; int B[9]; B[0]=-10000;//把B[0]设为最小,假设任何输入都大于-10000; B[1]=a[0];//初始时,最大递增子序列长度为1的最末元素为a1 int Len = 1;//Len为当前最大递增子序列长度,初始化为1; int p,r,m;//p,r,m分别为二分查找的上界,下界和中点; for(int i = 1;i<8;i++) { p=0;r=Len; while(p<=r)//二分查找最末元素小于ai+1的长度最大的最大递增子序列; { m = (p+r)/2; if(B[m]
Len) Len++;//更新当前最大递增子序列长度; } cout << Len << endl; return 0;}

 

参考博客

http://www.cnblogs.com/lonelycatcher/archive/2011/07/28/2119123.html

注 这个博客求最长时错了

转载于:https://www.cnblogs.com/l609929321/p/7249297.html

你可能感兴趣的文章
基于SSM的租赁管理系统0.2_20161225_开发环境
查看>>
洛谷 P3386 【模板】二分图匹配 Dinic版
查看>>
iOS 图片本地存储、本地获取、本地删除
查看>>
mobiscroll之treelist使用
查看>>
各种气候数据的下载(以下载青岛地区40年间月平均气温数据的下载为例)【转】...
查看>>
GIT和SVN之间的五个基本区别
查看>>
腾讯AlloyTeam正式发布omi-cli脚手架 - 创建网站无需任何配置
查看>>
30 天精通 RxJS(27):简易实现 Observable(二)
查看>>
PyTorch 0.4源码安装(Windows)
查看>>
Struts2第四篇【请求数据自动封装、Action得到域对象】
查看>>
js实现点击查看全文(类似今日头条、知乎日报效果)
查看>>
【火炉炼AI】机器学习031-KNN回归器模型的构建
查看>>
想晋级高级工程师只知道表面是不够的!Git内部原理介绍
查看>>
JavaScript基础——深入学习async/await
查看>>
MVP那些事儿(6)MVC转化为MVP
查看>>
【干货】Java岗面试考点大合集
查看>>
Android安全开发之浅谈密钥硬编码
查看>>
iOS 计算两个日期字符串的差值
查看>>
UTF-8 编码及检查其完整性
查看>>
Django REST framework API 指南(3):视图
查看>>