Loading section...

The Expand-Contract Framework

Concepts: pyExpandContract, pyWindowTemplate

Every sliding window problem, fixed or variable width, follows the same three-step loop: expand, contract, record. The right pointer expands the window by adding an element. The left pointer contracts the window by removing elements until the constraint is satisfied. Then you record the current window as a potential answer. This expand-contract-record rhythm is the template. Memorize it. Every sliding window problem is a variation of this template. The Universal Template For fixed-width windows, step 2 simplifies to: if the window is larger than K, remove the leftmost element and advance left. No while loop needed because the window can only be one element too large. For variable-width windows, step 2 uses a while loop because the window might need to shrink by multiple elements before the