笔记——最长上升子序列(LIS)
来源:互联网 发布:学配音的软件 编辑:程序博客网 时间:2024/06/06 01:36
/*最长上升子序列LIS
*/
int bSearch(int num,int k)//利用二分法将num替换到b[]中,使得b[]中1到最长子序列的末尾数字最小
{
int low=1,high=k;
while(low<=high)
{
int mid=(low+high)/2;
if(num>=b[mid])
low=mid+1;
else
high=mid-1;
}
return low;
}
int LIS(int n)
{
int low=1,high=n;
int k=1;
b[1]=a[1];
for(int i=2;i<=n;++i)//b[x]为在1-i中,x长度的子序列末尾最小的数
{
if(a[i]>b[k])
b[++k]=a[i];
else
{
int pos=bSearch(a[i],k);
b[pos]=a[i];
}
}
*/
int bSearch(int num,int k)//利用二分法将num替换到b[]中,使得b[]中1到最长子序列的末尾数字最小
{
int low=1,high=k;
while(low<=high)
{
int mid=(low+high)/2;
if(num>=b[mid])
low=mid+1;
else
high=mid-1;
}
return low;
}
int LIS(int n)
{
int low=1,high=n;
int k=1;
b[1]=a[1];
for(int i=2;i<=n;++i)//b[x]为在1-i中,x长度的子序列末尾最小的数
{
if(a[i]>b[k])
b[++k]=a[i];
else
{
int pos=bSearch(a[i],k);
b[pos]=a[i];
}
}
阅读全文
0 0
- 笔记——最长上升子序列(LIS)
- 动态规划——最长上升子序列问题(LIS)
- ACM模板——最长上升子序列(LIS)
- DP—最长上升子序列(LIS)
- 最长上升子序列LIS
- 最长上升子序列LIS
- 最长上升子序列(LIS)
- 最长上升子序列 LIS
- 最长上升子序列(LIS)
- LIS最长上升子序列
- 最长上升子序列 LIS
- 最长上升子序列LIS
- LIS最长上升子序列
- 最长上升子序列LIS
- LIS 最长上升子序列
- 最长上升子序列LIS
- LIS(最长上升子序列)
- LIS 最长上升子序列
- java中error错误和Exception错误
- java 打印菱形算法
- vs2017 cshtml文件打开文字不显示语法颜色,都是黑色问题的解决
- VS编译时MSB8012 的问题解决
- ReentrantLock类和Condition类的使用
- 笔记——最长上升子序列(LIS)
- APO 物料主数据增强
- Java基础笔记整理02
- PHP7 升级指南(Windows)
- 再认识session
- 【bzoj4373】算术天才⑨与等差数列
- bat配置java环境变量
- java泛型1(泛型上限下限嵌套)
- leetcode小白刷题路