最长单调递增子序列(二分查找优化)
2011-05-09 20:57
405 查看
优化后,不需要再定义一个数组存放当前元素最长序列的长度,而是在输入数据的同时进行最长序列的存放。
缺点:存放后的数组只是长度为最长序列的长度,但是元素的内容却不是最长序列的内容,若需要记录最长序列的排序,则需要另外一个数组用于记录。
缺点:存放后的数组只是长度为最长序列的长度,但是元素的内容却不是最长序列的内容,若需要记录最长序列的排序,则需要另外一个数组用于记录。
#include<iostream> #include<stdio.h> #include<algorithm> using namespace std; int data[100010]; int main() { int n; while(scanf("%d", &n) != EOF) { int res = 1; for(int i = 0; i < n; i++) { scanf("%d", &data[i]); int *pos = lower_bound(data, data + res, data[i]); if(res == pos - data) res++; *pos = data[i]; } cout<<res<<endl; } return 0; }
相关文章推荐
- nyoj214_单调递增子序列(2)二分查找 nlogn
- DP之最长递增序列(利用二分查找,复杂度为nlgn)
- POJ 2533--Longest Ordered Subsequence【最长递增子序列 + 二分优化】
- NYOJ 单调递增子序列 二分优化
- hdu 5748 Bellovin (最长递增子序列 二分查找)
- 最长递增子序列 O(NlogN)算法 ( DP + 二分查找)
- 二分求最长单调递增子序列并输出最长的序列(模板)
- nyoj--214--单调递增子序列(二)(二分查找+LIS)
- 单调递增子序列(二) 南阳理工214 二分查找
- 单调递增子序列 二分查找
- 算法导论15.4-6 求一个n个数的序列的最长单调递增子序列 O(n*logn)
- nyoj 214 单调递增子序列(二) dp+二分
- 最长单调递增子序列(LIS)
- 单调递增最长子序列DP+二分
- UVA-10534-Wavio Sequence(最长单调递增子序列长度NlogN)
- UVa 10534 Wavio Sequence (最长递增子序列 DP 二分)
- 【214最长单调递增子序列 NYOJ 二分搜索 和动态】
- C题 最长上升子序列(二分优化)
- NYOJ 17:单调递增最长子序列【二分】
- 动态规划和二分查找的方式 求最大递增子序列