A practice plan that holds
Eight weeks, pattern by pattern, with the repetition that turns solutions into recall.
Volume is not the goal. Coverage of patterns, plus repetition, is what produces recall under pressure.
Order patterns by payoff
| Week | Focus | Problems |
|---|---|---|
| 1 | Arrays, hash maps, two pointers | 12 |
| 2 | Sliding window, prefix sums, strings | 12 |
| 3 | Binary search, including on the answer | 10 |
| 4 | Stacks, queues, monotonic stack | 10 |
| 5 | Linked lists, fast and slow pointers | 10 |
| 6 | Trees, BSTs, traversal patterns | 14 |
| 7 | Graphs, BFS, DFS, topological sort, union-find | 14 |
| 8 | Dynamic programming and greedy | 16 |
Roughly a hundred problems. That is a realistic target and enough for most interview loops.
The repetition schedule
Each problem gets three passes: the day you solve it, the next day, and a week later. The second pass is where the pattern moves from recognised to owned; skipping it is why people solve three hundred problems and still freeze.
Simulate the real thing
Once a week, do a 45-minute mock: a random problem, a timer, no editor autocomplete, and speak the entire time. Record yourself occasionally. The gap between what you think you explained and what you actually said is usually large — and closing it is free marks.
Keep two lists
The trigger list — signal → technique, one line per problem, in your own words.
The error list — the mistakes you personally made: forgot the empty case, wrong loop direction on knapsack, marked visited on dequeue. Reread it before every interview; it is the shortlist of your own bugs.
Do not skip the easy ones
Easy problems build the fluency that makes hard problems tractable. Someone who writes binary search correctly without thinking has all their attention free for the actual question.
Two weeks out
Stop learning new patterns. Redo the problems you already know, practise explaining out loud, and sleep properly. Recall under pressure comes from consolidation, not from cramming one more technique you will not remember.