動態規劃回顧 1 最大連續子串行和

2021-07-10 19:56:29 字數 643 閱讀 8846

列出了兩種解決連續子串行和問題的方法:線性搜尋方法動態規劃方法

/*回顧經典的動態規劃問題

1、最大子串行和問題

author:yangsen

time:2023年3月29日

*/#include #include#includeusing namespace std;

//一種線性搜尋法,只需要一遍掃瞄即可

//最大子串行和的子串行不可能以負數或者0開頭!

//子串行是連續的

int maxsub1(int a,int n)

return maxsum;

}//一種動態規劃方法:空間換取時間,記錄之前的計算結果

//令dp[i]表示以a[i]作為末尾的連續序列的最大和,a[i]必須作為連續序列的末尾

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

int maxsub2(int a,int dp,int n)//n為陣列長度

return dp[k];//返回最大子串行和

}//列印陣列:注意最後乙個數後面的空格處理

void printarray(int a,int n)

{ for(int i=0;i

動態規劃 最大連續子串行和

題目大意就是讓你選出一段和最大的連續序列,當有幾個序列和並列時,選出下標最小的的連續序列。可以採用動態規劃的思想解決,設一連續序列為a 0 a 1 a n 分別以a 0 a 1 a n 結尾的最大序列和為d 0 d 1 d n 若d i 1 0,則d i d i 1 a i 若d i 1 0,則d ...

動態規劃 最大連續子串行和

動態規劃 最大連續子串行和 問題描述 給定乙個數字序列a1,a2,an,求i,j 1 i j n 使得ai aj最大,輸出這個最大和。樣例 211 413 5 2顯然 11 4 13 20 為和最大的選取情況,因此最大和為20 下面介紹動態規劃的做法,複雜度為o n 讀者會發現其實左端點的列舉是沒有...

動態規劃 最大連續子串行和

給定乙個數字序列,a1,a2,an,求i,j 1 i j n 使得ai aj最大,輸出這個最大和。樣例輸入 2 11 4 13 5 2 輸出 20 即11 4 13 20 最大 分析 如果暴力做的話,乙個列舉,需要o n 2 在計算需要o n 一共需要o n 3 因為重複計算的太多了,還是設定乙個d...