Minimum Size Subarray Sum Visualizer & Step-by-Step Algorithm Solution

Find the minimal length of a contiguous subarray of which the sum is greater than or equal to target using a dynamic sliding window.

Category: sliding-window | Difficulty: Medium

Tags: Array, Binary Search, Sliding Window, Prefix Sum

Minimum Size Subarray Sum

Numbers Array
L, R
2
0
3
1
1
2
2
3
4
4
3
5
100%
state
target7
left0
right0
sum0
minLen
window length1
sum >= targetfalse
Start
1/50
Explanation

Begin minSubArrayLen with target = 7 on array [2, 3, 1, 2, 4, 3].

Source Code
1function minSubArrayLen(target: number, nums: number[]): number {
2 let left = 0;
3 let right = 0;
4 let minLen = 999999999;
5 let sum = 0;
6 while (right < nums.length) {
7 sum += nums[right];
8 while (sum >= target) {
9 minLen = Math.min(right - left + 1, minLen);
10 sum -= nums[left];
11 left++;
12 }
13 right++;
14 }
15 return minLen === 999999999 ? 0 : minLen;
16}