https://leetcode-cn.com/problems/maximum-subarray
这是一道很初级的动态规划题目,我们只要找到了求解的规律就很好写出代码了。
class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = nums[0]
sum_n = nums[0]
if nums[1:]:
for num in nums[1:]:
# if sum_n > 0:
# sum_n += num
# else:
# sum_n = num
sum_n = max(num, sum_n+num)
res = max(res, sum_n)
return res
class Solution:
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res, tmp = nums[0], nums[0]
for num in nums[1:]:
tmp = max(tmp+num, num)
res = max(res, tmp)
return res