给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
核心思想:设置一个全局变量和一个局部变量,只要前面比零大就可以继续加。
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if max(nums) <= 0:
return max(nums)
local_max, global_max = 0, 0
for num in nums:
local_max = max(0, local_max + num)#只要前面比零大就可以继续加
global_max = max(global_max, local_max)
return global_max