博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最长递增子序列
阅读量:6787 次
发布时间:2019-06-26

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

1. 动态规划,使用一个数组保存当前的最大递增子序列长度,时间复杂度为O(N^2)

# include 
# include
# include
using namespace std;int longestsub(int a[],int n){ int *dis=(int *)malloc((n+1)*sizeof(int)); dis[0]=1; int i,j; for(i=0;i
=0;j--) { if(a[i]>a[j]&&dis[i]

2.《编程之美》上提供了第二种解法。使用数组b[len-1]表示长度为len时最后一个元素值,在这样的解法中能够使用二分查找使得程序加速,时间复杂度变为O(N*logN)

# include 
# include
# include
using namespace std;int binsearch(int a[],int n,int target) //binarysearch{int low=0;int high=n-1;int mid;while(low<=high){mid=(high-low)/2+low;if(a[mid]==target) return mid;else if(a[mid]
b[len-1]) { b[len]=a[i]; len++; } else { int tmp=binsearch(a,n,a[i]); b[tmp]=a[i]; } } free(b); return len;}int main(){ int a[5]={7,6,8,4,1}; cout<
<

转载地址:http://isbgo.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
配置IEEE802.3X流控制
查看>>
从濒临解散到浴火重生,OceanBase 这十年经历了什么?
查看>>
DHCP详解
查看>>
Mysql 在java 中的乱码
查看>>
linux下mysql命令
查看>>
Gitlab的使用
查看>>
Fartlek跑-间歇跑
查看>>
怎样在window phone8 中通过webBrowser调用第三方验证登陆接口
查看>>
Kalman原理(很详细)本文转载自《学习OpenCV》清华大学出版社 于诗琪 刘瑞祯 译...
查看>>
linux/centos6 系统时间同步 同步系统时间 ntpdate
查看>>
第一次开启51CTO博客
查看>>
升职还需犹豫?
查看>>
我的友情链接
查看>>
CMD框变小字体显示乱码
查看>>
正则总结:JavaScript中的正则表达式
查看>>
HAProxy 详解
查看>>
7.1文件查找之find命令详解
查看>>
Linux系统管理-(11)-网络配置ifcfg家族
查看>>