01 最長上公升子串行

2021-07-29 15:42:00 字數 890 閱讀 8846

描述

乙個數的序列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。

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

樣例輸入

71 7 3 5 9 4 8

樣例輸出

解題思路:

將大問題分解成小問題,即求以a[k]為結尾的最長上公升序列,此題可以不用遞迴函式,可以使用兩for迴圈,第乙個表示終點,第二個表示終點前的,然後尋找上公升的最大的,然後再從最大長度的裡面尋求乙個最大的!

解題細節心得:

注意題目細節的分析,以及將大問題分解成小問題這個關鍵的思路,學會自己去分析問題,解決問題!

**:#include using namespace std;

int main()

{ int n,i,j,max,k;

int a[10009],len[10009];

cin>>n;

for(i=1;i<=n;i++)

cin>>a[i];

len[1]=1;

for(i=2;i<=n;i++)

{ int k=0;

for(j=1;ja[j])

{if(k

01 最長上公升子串行

總時間限制 2000ms 記憶體限制 65536kb 描述 乙個數的序列 bi,當 b1 b2 bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列 a1,a2 an 我們可以得到一些上公升的子串行 ai1,ai2 aik 這裡1 i1i2 ik n。比如,對於序列 1,7,3,5,9,4,8 ...

01 最長上公升子串行

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

01 最長上公升子串行

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