Recursion you can step through

A page exists only when the idea does not survive as prose.

Sixteen interactive explanations built alongside a 12-week climb from plain recursion to dynamic programming. Each one exists because its idea is about when work happens or how often — and a code listing shows neither.

Started
Sun 20 Sep 2026
Ends
Sun 13 Dec 2026
Solved
36 problems
Written up
33 notes
Language
C++20

The line ahead

Twelve weeks, from recursion to bitmask and digit DP. Pages appear where an idea needs one.

1 Recursion2 Trees3 Backtracking I4 Backtracking II 5 Memoization6 1D DP7 Grid DP8 String DP 9 Knapsack10 Interval11 Tree & state machine12 Bitmask & digit

Why these five first

LC 206 is where tracing stops working and trusting starts. You cannot hold five stack frames in your head, and the page makes that unnecessary: watch five frames pile up changing nothing, then one link flip per return.

LC 509 is where dynamic programming first becomes visible. At n = 30 the recursion makes 2,692,537 calls to compute 31 distinct values. That gap — between distinct subproblems and calls made — is the whole idea, arriving nine weeks before the word is needed.