53.Maximum Subarray

题目介绍

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.
For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.

代码(python)

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        size = len(nums)
        d,sums=0,nums[0]
        for i in range(size):
            if d > 0:
                d += nums[I]
            else:
                d = nums[I]
            if d > sums:
                sums = d
    return sums
      

分析

这是一个很简单的动态规划的问题,我们在一个数组的上面不断的累积d的值,只要d的值大于0那么它与后面的值相加就会可能增大,d的累积值不断的保存起来,与已经保存的值比较,当d的值最后<=0了我们就把当前的nums[i]保存起来,重新开始。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容