最长单调递减子序列 采用二分搜索算法,时间复杂度O(nlgn)。
来源:互联网 发布:狮王红包软件 编辑:程序博客网 时间:2024/05/22 08:03
int LIS(int a[], int n)
{
int i=0, k;
int l, h;
int *b=new int[n+1];
b[1]=a[0];
for(i=1, k=1; i<n; i++)
{
if(a[i]<b[k])
b[++k]=a[i];
else
{//更新b[]
if(a[i]>b[1])
b[1]=a[i];
else
{//二分查找
for(l=1, h=k; l!=h-1; )
{
int mid=(l+h)/2;
if(b[mid]<=a[i])
h=mid;
else
l=mid;
}
b[h]=a[i];
}
}
}
return k;
}
int main()
{
int a[]={9,4,3,2,5,4,3,2};
cout<<LIS(a, 8)<<endl;
}
- 最长单调递减子序列 采用二分搜索算法,时间复杂度O(nlgn)。
- 最长递增子序列 O nlgn时间复杂度
- 最长单调递增子序列( O(nlgn) )
- 最长单调递增子序列( O(nlgn) )
- 最长递增子序列优化算法(时间复杂度为nlgn)C++实现
- 最长递增子序列优化算法(时间复杂度为nlgn)C++实现
- 最长单调递减子序列
- 最长单调递减子序列
- 算法_动态规划_最长单调递增子序列问题(O(nlogn)的时间复杂度)
- 最长上升子序列LIS O(nlgn)算法
- 时间复杂度为O(nlogn)的最长单调递增子序列
- LintCode -- 最长上升子序列 O(nlgn)
- 求最长单调递减子序列
- 求最长单调递减子序列
- 求最长单调递减子序列
- 求最长单调递减子序列
- 求最长单调递减子序列
- POJ2533, 最长上升子序列(贪心+二分查找时间复杂度O(nlogn))
- JAVA图形编程入门(连载7)
- Invalid file name: must contain only [a-z0-9_.]
- 自动备份Oracle数据库
- IE 兼容 Javascript 读取checkbox的值
- 自己测的socket。学习笔记
- 最长单调递减子序列 采用二分搜索算法,时间复杂度O(nlgn)。
- Fedora下搭建Android开发环境
- ORACLE完全恢复和不完全恢复的区别
- android修改wifi设备名
- ORACLE 恢复单个数据文件 非SYSTEM表空间或者撤销表空间
- GoogleTest项目
- 2. objC 动态绑定(dynamic binding)
- ORACLE单个控制文件丢失的恢复
- c++计算程序运行时间