原题链接
https://leetcode.com/problems/maximum-subarray/
解题思路:
两个变量,一个记录当前的最大和,一个记录可能产生最大和的最长序列和;当最长序列和小于0时,舍弃序列,从下一个大于0的数开始重启序列
代码:
class Solution(object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
cur_sum = 0
seq_sum = float('-inf')
for i in range(len(nums)):
cur_sum = cur_sum + nums[i]
seq_sum = max(cur_sum, seq_sum)
if cur_sum<0:
cur_sum = 0
return seq_sum
参考链接:
https://www.cnblogs.com/zuoyuan/p/3781988.html