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

2021-06-08 09:18:01 字數 581 閱讀 4463

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, ..., n - 2

其中start[i]為:

start[i] = a[n - 1]i = n - 1時,

start[i] = maxi = 0, 1, ..., n - 2

**如下:

int maxsum(int a, int n)

return all[0];

}int max(int a, int b)

下面是對空間複雜度的改進:

int maxsum(int a, int n)

return all;

}

時間複雜度為o(n)。

最大連續子串行之和,最大連續子串行乘積

最大連續子串行之和問題描述為 陣列中里有正數也有負數,連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和,求所有子陣列的和的最大值。分析,對陣列a進行一遍掃瞄,sum i 為前i個元素中,包含第i個元素且和最大的連續子陣列,maxsum儲存當前子陣列中最大和,對於a i 1 來說,sum i ...

最大連續子串行之和

窮舉法思路 1,3,4,5最大子串行為4 5 9,4 2 3 5 最大子串行為4 2 3 5 10 窮舉數列的每個區間,將區間內的數相加,更新最大值,每計算乙個區間後求和的sum要清0 include main sum 0 進入下次計算sum清0 printf d max 非列舉思路 當輸入的數全為...

最大連續子串行之和

問題描述 leyni得到了乙個長度為n的序列,xiange要求leyni最多可以修改其中k個元素,每次修改的規則是只能將乙個數字修改為其相反數。leyni想知道在修改後,他能得到的所有長度為len的連續子串行中,最大的 子串行和的絕對值 為多少?input 輸入包含多組測試資料。對於每組測試資料 第...