給定乙個整數陣列(下標從 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...