LintCode 397 最長上公升連續子串行

2021-09-24 13:33:11 字數 729 閱讀 2786

給定乙個整數陣列(下標從 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) 額外空間來解決

public class solution 

if(a[i] < a[i-1])

max1 = math.max(max1, res1);

max2 = math.max(max2, res2);

}return math.max(max1, max2);

}}

用乙個迴圈,同時尋找遞增和遞減的數列,使用兩個變數res1和res2分別記錄最長遞增和遞減數列的長度,一旦遞增遞減斷開,將對應的計數器重置,而max1與max2是記錄最長遞增和減序列的長度,防止計數器重置後歷史資料消失。

LintCode 397 最長上公升連續子串行

求最長上公升連續子串行的長度,但該題與一般情況不同,該題認為逆序也成立如 5,4,3,2,1,6 5,4,3,2,1 從右向左看也為最長上公升連續子串行,故對於這種情況直接將陣列反轉處理,再次求解。座標型動態規劃 最後一步 如果a j 是該序列中的話,那麼a j 1 一定是該序列中的,且a j a ...

lintcode 397 最長上公升連續子串行

給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。注意事項 time 樣例給定 5,4,2,1,3 其最長上公升連續子串行 lics 為 5,4,2,1 返回 4.給定 5,1,2,3,4 ...

397 最長上公升連續子串行

給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。給定 5,4,2,1,3 其最長上公升連續子串行 lics 為 5,4,2,1 返回4.給定 5,1,2,3,4 其最長上公升連續子串行 l...