53. Maximum Subarray

  • 注意加上之后为负的情况,重置cal为0
  • 注意数组全部为负数的情况
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return 0
        # cal表示加到当前值为止能获得的结果
        cal = 0
        res = float("-inf")
        for item in nums:
            cal += item
            # 先计算最大值再重置
            res = max(res, cal)
            # 如果cal小于0, 则说明加到当前值为止的数组可以抛弃掉,重新开始计算
            if cal < 0:
                cal = 0
        return res
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。