Sliding Window Pattern
The sliding window keeps a moving range over an array or string and updates it incrementally instead of recomputing from scratch. It collapses many O(n²) brute-force scans into a single O(n) pass.
Typical complexity: O(n) time, O(1)–O(k) space
When to use it
- You're asked about a contiguous subarray or substring.
- You want the longest/shortest/optimal window satisfying some condition.
- A brute force re-scans overlapping ranges you could reuse.
Practice problems
Read the approach or generate an interactive, step-by-step lesson:
Deep dive
Sliding Window Pattern: How to Turn Nested Loops Into Linear Time
Learn when to use sliding windows, how fixed and variable windows differ, and how to solve classic substring and subarray problems efficiently.
Master sliding window by doing
codebrew.ai turns each problem into an interactive lesson — trace the algorithm variable by variable until the pattern clicks.
Start a free lesson