乙個數的序列 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).
你的任務,就是對於給定的序列,求出最長上公升子串行的長度。
input
輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。
output
最長上公升子串行的長度。
sample input
7sample output1 7 3 5 9 4 8
4
1 #include2 #include3 #include4using
namespace
std;56
int num[1000];7
int maxlen[1000];8
intmain()
15//
以第i個整數為終點,求其的最長子序列,遍歷0-i的整數,若小於num[i],則用maxlen[j]+1與maxlen[i]取最大值賦值給maxlen[j]
16for(int i = 1; i < n; i++) 21}
22}2324 cout << * max_element(maxlen, maxlen +n);
25return0;
26 }
最長上公升子串行 (動態規劃)
描述乙個數的序列 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 等等。...
最長上公升子串行(動態規劃)
描述 乙個數的序列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。說明 可能會有多種最長上公升子串行的組合,你只需要輸出對應的長度即可。你演算法的時間複雜度應該為 o n2 原題跳轉鏈...