美文网首页
【LeetCode】Maximum Subarray

【LeetCode】Maximum Subarray

作者: 围墙内面包 | 来源:发表于2014-08-17 19:04 被阅读0次

【题目】

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.

click to show more practice.

More practice:
If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

【分析】

求最大子序列和。这题貌似也做过,忘记了...
遍历数组,求和,当和为负数时清零,并保存最大和。

【代码】

class Solution:
    # @param A, a list of integers
    # @return an integer
    def maxSubArray(self, A):
        currentSum = 0
        maxSum = -1000
        for num in A:
            if currentSum < 0:
                currentSum = 0
            currentSum += num
            maxSum = max(maxSum, currentSum)
        
        return maxSum

相关文章

网友评论

      本文标题:【LeetCode】Maximum Subarray

      本文链接:https://www.haomeiwen.com/subject/tkietttx.html