【leetcode刷题】53 maximum array (python)

原题链接
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

猜你喜欢

转载自blog.csdn.net/weixin_39746008/article/details/89425376