動態規劃專練5 最大連續子串行的和

2021-08-14 03:27:05 字數 838 閱讀 5973

1.問題描述:

求取陣列中最大連續子串行和,例如給定陣列為a=, 則最大連續子串行和為6,即1+3+(-2)+ 4 = 6。(注意連續)

2.思路:dp儲存每乙個數作為某乙個子串行結尾時的最大值,若dp[i-1]>0,則dp[i]=dp[i-1]+num[i];否則,dp[i]=0+num[i];(因為連續,所以num[i]肯定是作為num[i-1]的結尾。)

3**:

#include #includeint dp[1000];

int num[1000];

int main()

int max=dp[0];

for(i=1;imax)

max=dp[i];

}printf("%d\n",max);

}return 0;

}

空間優化:

#include int num[1000];

int main()

for(i=1;imax)

max=num[i];

}printf("%d\n",max);

}return 0;

}

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

1.問題描述 設n個元素的序列儲存在陣列a 0.n 1 中,求陣列中連續子串行之和的最大值。2.遞推公式 設all i 為子問題a i.n 1 的連續子串行之和的最大值,start i 為從a i 開始的連續序列之和的最大值,因此 all i a n 1 i n 1時,all i maxi 0,1,...

動態規劃 最大連續子串行乘積

題目描述 給定乙個浮點數序列 可能有正數 0和負數 求出乙個最大的連續子串行乘積。分析 若暴力求解,需要o n 3 時間,太低效,故使用動態規劃。設data i 第i個資料,dp i 以第i個數結尾的連續子串行最大乘積,若題目要求的是最大連續子串行和,則易確定狀態轉移方程為 dp i max dat...

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

時間限制 1 sec 記憶體限制 128 mb 提交 44 解決 20 提交 狀態 討論版 給定 k 個整數的序列 其任意連續子串行可表示為 其中1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個,例如給定序列 其最大連續子串行為 最大和為20。編寫程式得到其中最大子串行的和並輸出該子...