DSAPatternsAlgorithms

Sliding Window Pattern Deep Dive

Master the sliding window technique for solving subarray and substring problems.

6 min read

Sliding Window Pattern Deep Dive

The sliding window pattern is used for problems involving contiguous sequences (subarrays or substrings).

Types of Sliding Windows

Fixed Size Window

Javascript
function maxSumSubarray(arr, k) {
  let windowSum = 0;
  for (let i = 0; i < k; i++) {
    windowSum += arr[i];
  }
  
  let maxSum = windowSum;
  for (let i = k; i < arr.length; i++) {
    windowSum = windowSum - arr[i - k] + arr[i];
    maxSum = Math.max(maxSum, windowSum);
  }
  return maxSum;
}

Dynamic Size Window

Javascript
function minSubArrayLen(target, nums) {
  let left = 0, sum = 0, minLen = Infinity;
  
  for (let right = 0; right < nums.length; right++) {
    sum += nums[right];
    
    while (sum >= target) {
      minLen = Math.min(minLen, right - left + 1);
      sum -= nums[left];
      left++;
    }
  }
  
  return minLen === Infinity ? 0 : minLen;
}

When to Use

  • Maximum/minimum sum of k elements
  • Longest/shortest substring with condition
  • Count of subarrays meeting criteria

The key insight: instead of recalculating, we slide!

Enjoyed this article? Show some love!

644 views

Comments