問題描述:
給定乙個整數陣列(下標從 0 到 n-1, n 表示整個陣列的規模),請找出該陣列中的最長上公升連續子串行。(最長上公升連續子串行可以定義為從右到左或從左到右的序列。)
樣例給定[5, 4, 2, 1, 3]
, 其最長上公升連續子串行(lics)為[5, 4, 2, 1]
, 返回4
.
給定[5, 1, 2, 3, 4]
, 其最長上公升連續子串行(lics)為[1, 2, 3, 4]
, 返回4
.
解題思路:
分從左向右上公升和下降序列,它等於前乙個狀態的加一與當前狀態的最大值
**:
class solution ;
int maxlen2[n]=;
int max[n]=;
for(int i=1;ia[i-1]) //公升序 }
if(a[i] maxlen2[i]) }
if(maxlen1[i]
感悟:
注意不要把兩個情況弄混了及陣列的初始化問題
最長上公升連續子串行
給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。注意事項 time樣例 給定 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 ...
397 最長上公升連續子串行
給定乙個整數陣列 下標從 0 到 n 1,n 表示整個陣列的規模 請找出該陣列中的最長上公升連續子串行。最長上公升連續子串行可以定義為從右到左或從左到右的序列。給定 5,4,2,1,3 其最長上公升連續子串行 lics 為 5,4,2,1 返回4.給定 5,1,2,3,4 其最長上公升連續子串行 l...