本文最后更新于:2020年11月16日 下午

输入一个整数数组,数组种的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。

要求时间复杂度为$O(n)$。

示例1

输入:nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
输出:6
解释:连续子数组[4,-1,2,1]的和最大,为6

提示:

  • 1 <= arr.length <= 10^5
  • -100 <= arr[i] <= 100

本题与主站53题相同:

class Solution:
	def maxSubArray(self, nums):

解题思路:

class Solution:
	def maxSubArray(self, nums):
        for i in range(1, len(nums)):
            nums[i] += max(0, nums[i-1])
        return max(nums)