LC 速查

HOT 100索引 › B5 普通数组 Array

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
← 上一题 最小覆盖子串合并区间 下一题 →