給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
示例:
輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續子數組 [4,-1,2,1] 的和最大,爲 6。
用一個sub_max來記錄每個子序列的最大值。
用一個total_max來記錄最終的最大值
動態規劃
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
total_max = nums[0]
sub_max = nums[0]
for i in range(1, len(nums)):
sub_max = max(sub_max + nums[i], nums[i])
total_max = max(sub_max, total_max)
return total_max