Sliding Window
Learn the sliding window technique to process subarrays efficiently, like max sum of k items, longest substring problems, and stream-like processing.
Sliding window is used when you need continuous chunks of data. Example: - max sum of 3 consecutive days - longest substring without repeating - windowed averages ## Example: max sum of k consecutive items ```python def max_sum_k(nums, k): window_sum = sum(nums[:k]) best = window_sum for i in range(k, len(nums)): window_sum += nums[i] - nums[i-k] best = max(best, window_sum) return best print(max_sum_k([2,1,5,1,3,2], 3)) # 9 ``` ## Why this is efficient Instead of summing each window from scratch, you update by removing left item and adding right item. ## Graph: window movement ```mermaid flowchart LR A[Window start] --> B[Shift right] B --> C[Drop left] C --> D[Add new right] ``` ## Remember - Great for consecutive subarray/substrings - Converts repeated work into one-pass logic - Often changes O(n*k) into O(n)