LC 53最大子数组和Maximum Subarray 中等
求一个至少含一个元素的连续子数组,使其元素之和最大。
思路 Kadane:cur 记以当前元素结尾的最大和,取 max(cur+x, x),同时维护全局最大值。时间 O(n)。
class Solution: def maxSubArray(self, nums: List[int]) -> int: ans = cur = nums[0] for x in nums[1:]: cur = max(cur + x, x) # 延续或另起 ans = max(ans, cur) return ans