C 最長上公升連續子串行

2021-10-03 19:03:55 字數 825 閱讀 7477

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 ...