Sliding Window Technique
The sliding window technique is essential for solving substring and subarray problems efficiently.
Types of Sliding Windows
Fixed-Size Window
The window size is constant throughout. Example: Maximum sum of k consecutive elements
Variable-Size Window
The window size changes based on conditions. Example: Longest substring without repeating characters
Common Problems
- Maximum Sum Subarray of Size K
- Longest Substring Without Repeating Characters
- Minimum Window Substring
- Fruits into Baskets
Template
def sliding_window(arr, k):
left = 0
window_sum = 0
max_sum = 0
for right in range(len(arr)):
window_sum += arr[right]
if right >= k - 1:
max_sum = max(max_sum, window_sum)
window_sum -= arr[left]
left += 1
return max_sum
When to Use
- Subarray or substring problems
- Looking for contiguous elements
- Optimization problems with constraints
Practice these patterns and sliding window will become second nature!
