動態規劃之LIS(最長上公升子串行)

2022-06-13 09:18:07 字數 436 閱讀 7848

給定n個數,求這n個數的最長上公升子串行的長度。

【樣例輸入】

72 5 3 4 1 7 6

【樣例輸出】

4什麼是最長上公升子串行? 就是給你乙個序列,請你在其中求出一段不斷嚴格上公升的部分,它不一定要連續。

就像這樣:2,3,4,7和2,3,4,6就是序列2 5 3 4 1 7 6的兩種選取方案。最長的長度是4.

使用dp[i]表示以第i個數值結尾的最長上公升子串行的長度。

int lis(int nums)

} return list.size();

}

時間複雜度:o(nlogn)

空間複雜度:o(n)

類似地,我們可以使用二分查詢改變「上確界」和「下確界」以及符號(「<」、「<=」、「>」、「>=」等)求出最長不下降、不上公升、嚴格下降子串行問題。

動態規劃 最長上公升子串行 LIS

最長上公升子串行 簡稱lis 1.問題描述 給出乙個序列a1,a2,a3,a4,a5,a6,a7.an,求它的乙個子串行 設為s1,s2,sn 使得這個子串行滿足這樣的性質,s1 dp i 以ai結尾 的最長上公升子串行 狀態轉移方程 dp i max 1 實現o n n 2 dp i max 1 ...

動態規劃 最長上公升子串行(LIS)

題目 好多好多球 描述一天,jason買了許多的小球。有n個那麼多。他寫完了作業之後就對著這些球發呆,這時候鄰居家的小朋友ion回來了,jason無聊之際想到了乙個遊戲。他把這n個小球從1到n進行標號。然後打亂順序,排成一排。然後讓ion進行一種操作 每次可以任意選擇乙個球,將其放到佇列的最前端或者...

動態規劃 最長上公升子串行LIS

一.簡單推論 非0 n情況 二.嚴謹推論 最長上公升子串行 lis 給定長度為n的序列,從中選取乙個子串行,這個子串行需要單調遞增 問最長上公升子串行 lis 的長度 eg 1,5,2,3,11,7,9 則lis序列為 1,2,3,7,9,長度為5 設計狀態dp x 為以a x 結尾的lis長度,那...