前往此题

解题思路

这题很简单,创建一个变量sum用于表示增益, 创建变量res记作最终答案

  • 如果sum大于0则表示遇到了增数,
  • 如果sum小于等于0,则继续往后推,sum更新为当前值
  • 在每次遍历的时候都需要比较ressum中的最大值,最后遍历结束时返回res
class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        sums = 0
        res = nums[0]

        for n in nums:
            if sums > 0: sums += n
            else: sums = n
            res = max(sums, res)
        return res