Interview Patterns: Two Pointers and Sliding Window
Most coding-interview questions are variations on a small set of patterns. You have already used several: hash maps for lookups, BFS for shortest paths, slow/fast pointers for the middle of a list. This capstone lesson drills the two highest-yield remaining patterns, two pointers and sliding window, then hands you a fullscreen practice arena to put the whole course together.
What You'll Learn
- The two-pointers pattern for sorted arrays and pair problems
- The sliding-window pattern for subarray and substring problems
- How to recognize which pattern a problem is asking for
- A capstone challenge combining patterns from the whole course
Two Pointers: Squeeze from Both Ends
When data is sorted (or can be sorted), one pointer at each end moving inward replaces a nested loop. Classic example: does any pair sum to a target?
Why it works: with sorted data, a too-small sum can only be fixed by moving the left pointer up, and a too-big sum by moving the right pointer down. Each step eliminates one candidate, so the scan is O(n) instead of the O(n^2) all-pairs check.
The same shape checks palindromes, one pointer from each end of a string:
Sliding Window: Reuse the Overlap
For "best subarray/substring of size k" questions, the naive approach recomputes each window from scratch: O(n*k). The sliding window keeps a running result and updates it as the window moves one step: subtract the element leaving, add the element entering. O(n) total:
A variable-size window grows and shrinks to satisfy a condition. The famous "longest substring without repeating characters" combines a window with a set from the hash-table lesson:
Picking the Right Pattern
| The problem says... | Reach for |
|---|---|
| "pair", "sum to target", sorted input | Two pointers |
| "subarray of size k", "longest substring that..." | Sliding window |
| "have I seen...", "count occurrences", "group by" | Hash table |
| "shortest path", "fewest steps" | BFS |
| "all combinations", "explore every path" | DFS / backtracking |
| "kth largest", "top k" | Sort, or a heap |
| Sorted data, "find the boundary" | Binary search |
Capstone Arena
Your fullscreen practice space. Each challenge below uses a different pattern from the course. Solve them here, check with the sample answers in the comments, and modify the inputs to stress-test your solutions:
Exercises
Key Takeaways
- Two pointers turns many O(n^2) pair problems into O(n) when the data is sorted
- Sliding window reuses the overlap between consecutive windows: add the entering element, drop the leaving one
- Variable windows grow to explore and shrink to restore validity
- Pattern recognition is the real interview skill: map the problem's phrasing to the right tool
- You now own the core toolkit: Big-O, arrays, stacks, queues, linked lists, hash tables, recursion, searching, sorting, trees, graphs, and the two headline patterns

