Maximum Subarray Visualizer & Step-by-Step Algorithm Solution

Find the largest contiguous subarray sum with Kadane’s algorithm by choosing whether to restart or extend at each element.

Category: recursion | Difficulty: Medium

Tags: Array, Dynamic Programming, Kadane’s Algorithm

Maximum Subarray

Bracket: current · highlight: best
-2
0
1
1
-3
2
4
3
-1
4
2
5
1
6
-5
7
4
8
100%
state
n9
current-2
current range[0, 0]
Initialize Current
1/36
Explanation

Set current = nums[0] = -2. current is the largest sum of a nonempty subarray ending at the current index.

Source Code
1function maxSubArray(nums: number[]): number {
2 let current = nums[0];
3 let best = nums[0];
4
5 for (let i = 1; i < nums.length; i++) {
6 current = Math.max(nums[i], current + nums[i]);
7 best = Math.max(best, current);
8 }
9
10 return best;
11}