維護一個單調隊列,對於每一個新的元素:
如果大於隊尾元素,補在後面;
否則替換掉最小的大於它的數,這裏用二分查找,因此時間複雜度爲logn
演示一下:
1 3 7 5 9 4 8
1
1 3
1 3 7
1 3 5
1 3 5 9
1 3 4 9
1 3 4 8#include <iostream> #include <algorithm> using namespace std; int a[1111],n,k,m; int main(){ cin >> n; for (int i(1);i<=n;i++){ cin >> k; if ( k>a[m] ) a[++m]=k; else a[upper_bound(a+1,a+m,k)-a] = k; } cout << m << endl; return 0; }
Longest Ordered Subsequence O(nlogn)解法 STL
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
【算法】leetcode 837. 新21點(理清思路,動態規劃)
岚清子
2020-07-08 09:13:37
【算法】【動態規劃篇】第10節:最長連續序列問題(leetcode 128. 最長連續序列)(使用hash表優化空間複雜度)
岚清子
2020-07-08 09:13:36
[AT2383] [AGC015 E] Mr.Aoki Incubator
LPA20020220
2020-07-08 02:30:27
poj_2250 Compromise(輸出最長公共子序列)
薄帷清风
2020-07-08 11:45:17
leetcode:除數博弈
zhangxiaojiakele
2020-07-08 11:07:31
藍橋杯 遞歸練習 覆蓋牆壁
NGU_Jq
2020-07-08 10:21:35
代碼+步驟GM(1,1)灰色預測模型-案例長江水質綜合評價賽題-級比檢測C的確定-matlab完整代碼附送
侯永琪在修行
2020-07-08 09:25:15
動態規劃專題:傳紙條
AndyBear
2020-07-08 09:19:19
動態規劃專題:找啊找啊找GF
AndyBear
2020-07-08 09:19:08
POJ1036——動態規劃
AndyBear
2020-07-08 09:19:08
Leetcode 簡單三十四 746.使用最小花費爬樓梯
铁面无情哈士奇
2020-07-08 09:03:41
[leetcode 63] 不同路徑 II(Python 動態規劃+滾動數組優化)
吃吃爱学习
2020-07-08 08:59:28
C++實現帶路徑記錄的Floyd-Warshall算法
cjliux
2020-07-08 07:47:48