Maximum Subarray Sum

Hard~20 min

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

A subarray is a contiguous part of the array (e.g., [2, -1, 3] is a subarray of [1, 2, -1, 3, 5]).

Your solution must run in O(n) time.

A brute-force approach that checks every possible subarray is O(n²) or O(n³) and will be too slow on large inputs. Think about how to solve this in a single pass.

Examples

Example 1
Input: nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]
Output: 6
Explanation: The subarray [4, -1, 2, 1] has the largest sum = 6.
Example 2
Input: nums = [1]
Output: 1
Explanation: Only one element.
Example 3
Input: nums = [5, 4, -1, 7, 8]
Output: 23
Explanation: The entire array has the largest sum: 5 + 4 + (-1) + 7 + 8 = 23.

Constraints

  • 1 <= nums.length <= 10^5
  • -10^4 <= nums[i] <= 10^4
  • Expected time complexity: O(n)
Code
Ctrl+EnterRun|Ctrl+⇧+EnterSubmit
Output

Run your code to see results

Use Cmd+Enter to run