最長上公升連續子串行

2021-08-09 23:54:19 字數 645 閱讀 5630

問題描述:

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