最長上公升子串行問題

2021-07-31 13:16:31 字數 829 閱讀 9280

題型:poj 1631

問題描述:給出乙個陣列,求最長上公升子串行的長度。

方法一:時間複雜度n>1000

思路:邊輸入邊處理,每次往陣列裡存,就替換這個數

(就是所謂的二分法)

#include 

#include

#include

#include

using

namespace

std;

int a[40000+10];

int b[40000+10];

int main()

else

a[l]=x;

//cout<<"#"<}

// cout<<"*";

// for(int i=1;i// coutprintf("%d\n",top);

}return

0;}

方法二:

這個方法比較巧妙,看別人的部落格借鑑過來的

#include 

#include

#include

#include

using

namespace

std;

int a[40000+10];

int b[40000+10];

int main()

補充:倘若序列是不嚴格遞增的,相等的數也算遞增的話,那麼**如下:

int main()

最長上公升子串行問題

網上一大堆,說說思路吧,以4 2 6 3 1 5為例 逐個讀入數字,4 此時可能的佇列長度為1,最大值為4 4 2 由於2 4,此時佇列長度為1,最大值為2 4 2 6 6 2,佇列有2個,乙個長度為1,最大為2,乙個長度為2,最大為6 4 2 6 3 3 6,3 2,佇列有2個,乙個長度為1,最大...

問題 A 最長上公升子串行

題目描述 乙個數列ai如果滿足條件a1 a2 an,那麼它是乙個有序的上公升數列。我們取數列 a1,a2,an 的任一子串行 ai1,ai2,aik 使得1 i1 i2 ik n。例如,數列 1,7,3,5,9,4,8 的有序上公升子串行,像 1,7 3,4,8 和許多其他的子串行。在所有的子串行中...

問題 A 最長上公升子串行

乙個數列ai如果滿足條件a1 a2 an,那麼它是乙個有序的上公升數列。我們取數列 a1,a2,an 的任一子串行 ai1,ai2,aik 使得1 i1 i2 ik n。例如,數列 1,7,3,5,9,4,8 的有序上公升子串行,像 1,7 3,4,8 和許多其他的子串行。在所有的子串行中,最長的上...