動態規劃練習 01 最長上公升子串行

2021-07-30 16:58:06 字數 1015 閱讀 5861

題目描述:

描述乙個數的序列

bi,當

b1 < 

b2 < ... < 

bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列(

a1, 

a2, ..., 

an),我們可以得到一些上公升的子串行(

ai1,  ai2

, ..., 

aik),這裡1 <= 

i1 < 

i2 < ... < 

ik <= n。比如,對於序列(1, 7, 3, 5, 9, 4, 8),有它的一些上公升子串行,如(1, 7), (3, 4, 8)等等。這些子串行中最長的長度是4,比如子串行(1, 3, 5, 8).

你的任務,就是對於給定的序列,求出最長上公升子串行的長度。

輸入輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。

輸出最長上公升子串行的長度。

樣例輸入

7

1 7 3 5 9 4 8

樣例輸出

題目理解:求一段給定序列中能得到的最長上公升的子串行。

解題思路:

新建乙個陣列,在陣列的每乙個位置都存放該位置之前能得到的最長的子串行的長度+1,即加上該位置上的數字能得到的最長的子串行。這樣到最後比較長度的大小,輸出最大的長度即可。

源**:

#include

#include

using

namespace std;

intmain

()int c[

10000

]; c[0]=

1;for(i=

1;i} c[i]=sum+1;}

int sum1=0;

for(i=

0;iif(sum1sum1=c[i];

cout<}return0;

}

動態規劃練習一 01 最長上公升子串行

描述 乙個數的序列bi 當b1 b2 bs 的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1 a2 an 我們可以得到一些上公升的子串行 ai1 ai2 aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等。...

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

題目 給定乙個無序的整數陣列,找到其中最長上公升子串行的長度。示例 輸入 10,9,2,5,3,7,101,18 輸出 4 解釋 最長的上公升子串行是 2,3,7,101 它的長度是 4。思路 義 dp i dp i 為考慮前 ii 個元素,以第 ii 個數字結尾的最長上公升子串行的長度,注意 te...

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

問題描述 乙個數的序列bi,當b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2,an 我們可以得到一些上公升的子串行 ai1,ai2,aik 這裡1 i1 i2 ik n。比如,對於序列 1,7,3,5,9,4,8 有它的一些上公升子串行,如 1,7 3,4,8 等等...