LeetCode #53 Maximum Subarray

题目

53. Maximum Subarray


解题方法

这道题使用贪心算法的思想可以设计出O(n)的算法,遍历数组进行累加,如果累加值小于0,就把当前位置的值作为新的累加值,否则就把当前位置的值加到累加值里面,取每次累加之后结果的最大值即可。


代码

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        subsum = 0
        ret = -2147483647
        
        for i in range(len(nums)):
            if subsum < 0:
                subsum = nums[i]
            else:
                subsum += nums[i]
            ret = max(ret, subsum)
        
        return ret
posted @ 2020-10-13 15:32  老鼠司令  阅读(46)  评论(0编辑  收藏  举报