最長不降子串行 dp

2021-06-28 01:00:19 字數 749 閱讀 9691

問題描述:

給定乙個字串,求出其不降子串行的最大長度。

分析:從後往前逆推:

06對於n個數,我們可以分為n-1個階段。

07我們由後向前搜尋(逆推法),我們可以這樣思考:

081· 對a(n)來說,由於它是最後乙個數,所以當從a(n)開始查詢時,只存在長度為1的不下降序列;

092· 若從a(n-1)開始查詢,則存在下面的兩種可能性:

10①若a(n-1)

11②若a(n-1)>a(n)則存在長度為1的不下降序列a(n-1)或a(n)。

123· 一般若從a(i)開始,此時最長不下降序列應該按下列方法求出:

13在a(i+1),a(i+2),…,a(n)中,找出乙個比a(i)大的且最長的不下降序列,作為它的繼。

144.用陣列f(i)點i到n的最長的不降子串行的長度.

最長不降子串行

原文 這題目是經典的dp題目,也可叫作lis longest increasing subsequence 最長上公升子串行或者 最長不下降子串行。很基礎的題目,有兩種演算法,複雜度分別為o n logn 和o n 2 一 問題描述 設有由n個不相同的整數組成的數列,記為 a 1 a 2 a n 且...

DP入門之《LIS 最長不降子串行》

剛學dp沒思路,就去找書看,剛開始了解了記憶化搜尋與遞推,對dp問題漸漸開始有了一些理解,並有了一些自己的想法,對書上描述的狀態轉移方程開始感覺有點意思了。今天又看看了對lis的解決方案的描述,感覺貌似明白了,就試著寫了寫,只寫了20行的 就解決問題了,當然,這段 只能給出最優值,而不能給出最優方案...

最長不降子串行問題

一 問題 輸入 設有由n個不相同的整數組成的數列,記為 a 1 a 2 a n 且a i a j i j 若存在i1長度為e的不下降序列。輸出 程式要求,當原數列給出之後,求出最長的不下降序列。例子 數列3,18,7,14,10,12,23,41,16,24。3,18,23,24就是乙個長度為4的不...