918. Maximum Sum Circular Subarray

https://leetcode.com/problems/maximum-sum-circular-subarray/

先看Leetcode 53 Maximum Subarray

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        currSum = 0
        maxSum = float("-inf")
        for num in nums:
            currSum = max(currSum+num, num)
            maxSum = max(maxSum, currSum)
        return maxSum

这道题只需要讨论两个情况:

(1) max subarray

(2) total - min subarray

唯一的corner case,当所有数是负数时,最后结果max subarray是array里面的最大值

Last updated