leetcode之子数组问题

一、最大和子数组问题——寻找子数组使得该子数组中元素的和最大

【思路】

    1、初始化left = 0, maxSum = 0, right = 0

    2、计算nums[left, right]的元素和,若大于maxSum,则更新maxSum。另,若>0,则right++,表示继续向该子数组中添加元素,否则,另left= right +1 , right = left,表示当前子数组已经被丢弃。

    3、时间复杂度为O(n)

【Python3代码】

class Solution:
    def maxSubArray(self,nums):
        maxSum = nums[0]
        currSum = 0
        for i in range(0,len(nums)):
            currSum = currSum + nums[i]
            if currSum > maxSum:
                maxSum = currSum
            if currSum < 0:
                currSum = 0
        return maxSum

你可能感兴趣的:(LeetCode)