397. 最長上公升連續子串行
中文english
給定乙個整數陣列(下標從 0 到 n-1, n 表示整個陣列的規模),請找出該陣列中的最長上公升連續子串行。(最長上公升連續子串行可以定義為從右到左或從左到右的序列。)
樣例樣例 1:
輸入:[5, 4, 2, 1, 3]
輸出:4
解釋:給定 [5, 4, 2, 1, 3],其最長上公升連續子串行(lics)為 [5, 4, 2, 1],返回 4。
樣例 2:
輸入:[5, 1, 2, 3, 4]
輸出:4
解釋:給定 [5, 1, 2, 3, 4],其最長上公升連續子串行(lics)為 [1, 2, 3, 4],返回 4。
挑戰使用 o(n) 時間和 o(1) 額外空間來解決
class
solution
//每次更新當前最大上公升連續子串行
if(f[i]
> result)}}
intlongestincreasingcontinuoussubsequence
(vector<
int>
&a)//第一次呼叫,從左邊來
lics
(a, n)
;//反轉容器裡面的元素
int i =
0, j = n -
1, t;
while
(i < j)
//再次呼叫,從右邊來
lics
(a, n)
;return result;}}
;
最長上公升連續子串行
給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。注意事項 time樣例 給定 5,4,2,1,3 其最長上公升連續子串行 lics 為 5,4,2,1 返回4.給定 5,1,2,3,4 其...
最長上公升連續子串行
問題描述 給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。樣例給定 5,4,2,1,3 其最長上公升連續子串行 lics 為 5,4,2,1 返回4.給定 5,1,2,3,4 其最長上公升...
最長上公升子串行(非連續)
最長上公升子串行 lis 的典型變形,熟悉的n 2的動歸會超時。lis問題可以優化為nlogn的演算法。定義d k 長度為k的上公升子串行的最末元素,若有多個長度為k的上公升子串行,則記錄最小的那個最末元素。注意d中元素是單調遞增的,下面要用到這個性質。首先len 1,d 1 a 1 然後對a i ...