cho.sh
0053 Maximum Subarray

0053 Maximum Subarray

Warning

This post is more than a year old. Information may be outdated.

Solved at: 220905

Question

Given an integer array nums, find the contiguous subarray (containing at least one number) with the largest sum and return its sum.

A subarray is a contiguous part of an array.

Solution

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        current = 0
        largest = -inf
        for i in nums:
            current += i
            if current > largest:
                largest = current
            if current < 0:
                current = 0
        return largest
  • try to see if keeping the previous part is worth it.
  • if it is worth it, that means the part before is positive.

Results

Runtime

  • 1192 ms, faster than 42.26% of Python3 online submissions for Maximum Subarray.

Memory Usage

  • 27.7 MB, less than 97.93% of Python3 online submissions for Maximum Subarray.

Complexity Analysis

Time

$O(N)$

Space

$O(1)$

Other Answers Online

  • Divide and Conquer