給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。
示例:
輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。(只求最大子序和,不是最大子序區間)
假設 nums 陣列的長度是 n,下標從 0 到 n - 1。
我們用 ai 代表 nums[i],用 f(i)代表以第 ii個數結尾的「連續子陣列的最大和」,那麼很顯然我們要求的答案就是:
因此我們只需要求出每個位置的 f(i),然後返回 f 陣列中的最大值即可。那麼我們如何求 f(i)呢?我們可以考慮 ai 單獨成為一段還是加入 f(i - 1) 對應的那一段,這取決於 ai和 f(i - 1) + ai的大小,我們希望獲得乙個比較大的,於是可以寫出這樣的動態規劃轉移方程:
最大子序和 動態規劃
給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。def maxsubarray nums length len nums for i in ...
動態規劃 最大子序和
給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 1 輸入 nums 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6 示例 2 輸入 nums 1 輸出 1 示例 3 輸入 nums 0 輸出 0...
動態規劃 最大子序和
今天總結一下有關動態規劃問題中最大子序和的問題。53.最大子陣列和 題目要求給定乙個陣列,讓我們求出最大連續子陣列的和。我們使用動態規劃來解決此類問題。dp i 表示以nums i 結尾的連續子串行的和的最大值。那麼我們要求的答案就是max.其狀態轉移方程很容易就看出為dp i max dp i d...