最大子串行和問題

2021-08-03 15:59:52 字數 411 閱讀 2031

最大連續子串行和問題,即是求給定序列中連續元素之和的最大值,例如給定序列a為:

那麼最大子串行之和為12,子串行為 .

我們使用動態規劃來解決這道題,使用動態規劃的思想就是要得到該問題的狀態定義和狀態轉移方程,狀態定義可以輕鬆得出:

我們的目的就是要求出最大的sum[i]。還是以問題描述中的例子為例,當 i = 0 時,sum[0] = -1;當i = 1 時,sum[1] = max = 2;當

i = 2 時,sum[2] = max = 5 ...... 這樣我們就可以很容易地得到狀態轉移方程:

根據狀態轉移方程,就可以容易地得到以下**:

int max_sub(int a, int size) 

return max;

}

最大子串行和問題

問題 給定一整數序列a1,a2,an 可能有負數 求a1 an的乙個子串行ai aj,使得ai到aj的和最大 例如 整數序列 2,11,4,13,5,2,5,3,12,9的最大子串行的和為21。對於這個問題,最簡單也是最容易想到的那就是窮舉所有子串行的方法。利用三重迴圈,依次求出所有子串行的和然後取...

最大子串行和問題

問題描述 給定乙個整數序列 可能有負數 求一子串行 記為l 使得該子串行所有元素之和最大。例 給定序列 2,11,4,13,5,2,則最大子串行和為20 11,4,13 方法一 遍歷窮舉 o n 2 略方法二 分治遞迴 o n logn 思路 將輸入序列l分為左右兩個子串行l1和l2,則l 只可能以...

最大子串行和問題

問題描述 求 2,11,4,13,5,2 的最大子串行和。方法一 使用3層for迴圈巢狀,窮舉式的嘗試所有的可能,如下 public class demo1 return maxsum public static void main string args system.out.println 最大...