最大連續子段和 動態規劃 線性遞推動規

2021-09-25 16:52:50 字數 858 閱讀 4095

題目描述

【問題】

給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],

求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。

當所給的整均為負數時定義子段和為0,

依此定義,所求的最優值為: max,1<=i<=j<=n

例如,當(a1,a2,a3,a4,a4,a6)=(-2,11,-4,13,-5,-2)時,最大子段和為20。

【輸入】

第一行 n

第二行n個數為系列數值

【輸出】

最大子段和、

【樣例輸入】

54 -5 3 2 4

【樣例輸出】

9【樣例輸入】

71 2 3 -5 0 7 8

【樣例輸出】

16code:

#include

using

namespace std;

int n,a,dp,ans=

-99999999

;//ans可能是負數,所以要注意一下

intmain()

cout

}

最開始的時候在oj上提交,ans初始化為0,可能是因為oj上資料太少了就碰巧通過了吧,後來在其他平台提交就發現了問題,最大欄位和可能是負數,所以在定義ans時要給它初始化成為乙個很大很大的負數。

最大連續子段和問題(動態規劃 貪心)

最大連續子段和問題 傳送門問題描述 給定乙個陣列,記錄一串數字,且元素值即存在正數也存在負數,現在要你求出陣列中最大的連續子段和 分析 動態規劃解法 這是乙個經典的線性dp的模型。狀態表示 f i 表示以a i 為結尾的最大子串行的和的值 狀態計算 對於當前位置 i 有兩種情況 class solu...

最大連續子段和

最大連續子段和 給定長度為n的整數序列,a 1.n 求 1,n 某個子區間 i,j 使得a i a j 和最大,或者求出最大的這個和。例如 2,11,4,13,5,2 的最大子段和為20,所求子區間為 2,4 窮舉法 3次for迴圈 第1次for迴圈,遍歷陣列所有數字,即確定子段和的首個數字 第2次...

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

題目大意就是讓你選出一段和最大的連續序列,當有幾個序列和並列時,選出下標最小的的連續序列。可以採用動態規劃的思想解決,設一連續序列為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 ...