動態規劃 最大子序和

2021-10-20 12:07:59 字數 968 閱讀 4243

給定乙個整數陣列 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

示例 4:

輸入:nums = [-1]

輸出:-1

示例 5:

輸入:nums = [-100000]

輸出:-100000

1 <= nums.length <= 3 * 104

-105 <= nums[i] <= 105

高階:如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的 分治法 求解。

if

(dp[i-1]

<0)

else

dp[i]表示以i結尾的連續子陣列的和

由狀態轉移方程可知

需要dp由i-1得出,由dp定義可知dp[0] = nums[0]。

if

(dp[0]

<0)

else

class

solution

else

result = math.

max(result, dp[i]);

}return result;

}}

最大子序和 動態規劃

給定乙個整數陣列 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 ...

動態規劃 最大子序和

今天總結一下有關動態規劃問題中最大子序和的問題。53.最大子陣列和 題目要求給定乙個陣列,讓我們求出最大連續子陣列的和。我們使用動態規劃來解決此類問題。dp i 表示以nums i 結尾的連續子串行的和的最大值。那麼我們要求的答案就是max.其狀態轉移方程很容易就看出為dp i max dp i d...

最大子序和 動態規劃

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。只求最大子序和,不是最大子序區間 假設 nums 陣列的長度是 n,下標從 0 到 n 1。...