Concepts
The connective tissue: ideas that apply across many algorithms, written for the moments — an interview, a real bug, a new problem — where recognizing the shape matters more than remembering any one implementation.
- How to recognize which algorithm a problem wantsThe cues hiding in problem statements — the words, constraint sizes and data shapes that point at an algorithm family before you have written a line.
- Big-O without the mathsWhat complexity notation actually claims, how to read growth from code shape, and the traps — hidden costs, amortized claims, constants Big-O ignores.
- Recursion: how the call stack actually worksThe mental model that makes recursion mechanical — frames, the two moments every call has, why deep recursion crashes, and how to convert to iteration.
- Why sorted input changes everythingSortedness is stored work: one comparison speaks for thousands of elements. Where that power comes from, what it costs, and the algorithms that spend it.
- The two-pointer pattern familyOne name, three distinct techniques — converging ends, slow/fast walkers, and sliding windows — and how to tell instantly which one a problem is asking for.
- When memoization appliesThe two properties that make caching legal and worthwhile, how to spot them in a problem, and the honest boundary where DP does not help at all.
- Graph representation trade-offsAdjacency list, adjacency matrix, edge list — how the storage choice decides which operations are cheap, and how to spot graphs that arrive wearing disguises.
- How to talk through an algorithm in an interviewThe interview is an oral exam about reasoning, not a typing test — a concrete protocol for the forty-five minutes, with the sentences that do the heavy lifting.