【LeetCode】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.

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

相关阅读更多精彩内容

友情链接更多精彩内容