子串行問題

2021-10-22 23:48:16 字數 925 閱讀 3935

1.最長上公升子串行

乙個數的序列bi,當b1比如,對於序列(1,7,3,5,9,4,8),有它的一些上公升子串行,如(1,7),(3,4,8)等等。這些子串行中最長的長度就是4,比如子串行(1,3,5,8)。

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

3.最大子段和問題

問題分析

狀態設計:dp[i](1<=i<=n) 表示以a[i]結尾的最大連續子段和。

顯然dp[i]>=0;

求解目標:

max(1<=i<=n)

狀態轉移方程

dp[i]=max

dp[i]=max

int maxsubsum=0;

dp[1]=max(a[i],0);

int i;

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

dp[i]=max(dp[i-1]+a[i],0);

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

r[n+1]=-10001;

sum=0;

max=-20000;

for(int i=n;i!=0;i--)

cout<

}return 0;

}

子串行問題

最近做了兩道子串行問題,分別是 53 最大子串行和和152 乘積最大子串行 他們解決的辦法大致相同,都是經過一次遍歷儲存乙個遍歷到當前數字的最大值,然後保留乙個當前增益或但當前成績,於是放到一起做乙個總結。53 最大子串行和 來自leetcode題解 動態規劃的是首先對陣列進行遍歷,當前最大連續子串...

子串行問題

南昌理工學院ps 這周划水嚴重,就不發學習總結了 最長上公升子串行lis lis 最長上公升子串行 本蒟蒻只會用 想理解點這 n n模板 定義a n 為要求的序列 for int i 1 i n i dp i na 1 nlogn模板 用二分的方法進行查詢比較,節省時間 查詢a n int len ...

最長不降子串行問題

一 問題 輸入 設有由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的不...