00 / An algorithmic-thinking gym
Train the pattern here.
Practice on LeetCode.
We are not another problem archive. We compress the gap between I read the problem and I see the trick from hours into minutes — with interactive animations that teach the mental model, not the syntax.
family · 3 sub-patternslive
Two Pointers
Two indices moving over the same sequence to maintain an invariant — converging, fast/slow, sliding window.
converging · fast-slow · slidingenter library →
singlelive
Binary Search Variants
Boundary conditions are the field's largest unsolved teaching problem.
3 variants · O(log n)open →
singlelive
Backtracking
Decision-tree expansion — uniquely suited to animation.
branching state machineopen →
singlelive
Monotonic Stack
Stack-state transitions are invisible in code, dramatic in animation. The stack is the protagonist.
next-greater · histogramopen →
phase 2live
BFS / DFS on Gr DFS
A queue gives breadth, a stack gives depth — same algorithm, two traversal orders.
queue · stack · flood fillopen →
phase 2live
Heap & Priority Queue
Track the k most extreme — the root of a min-heap of size k is the worst of the k.
top-k · merge-k · O(N log k)open →
phase 2live
Tree Traversal
Every traversal visits every node once — only when relative to children's recursion differs.
preorder · inorder · postorder · levelopen →
phase 2live
Linked List Manipulation
Three pointers — prev, curr, next — let you rewrite a list in place without losing the tail.
reverse · merge · reorderopen →
family · 5 sub-patternslive
Dynamic Programming
A table fills itself, one cell at a time — each entry composed from a constant number of earlier ones. A family of five sub-patterns.
1-d · 2-d · knapsack · interval · state-machineenter library →
single · phase 3live
Union Find
Maintain a partition of N elements into disjoint components — merge two components in near-constant time, with the forest flattening itself on every query.
connected components · O(α(N))open →
single · phase 3live
Trie
Store a set of strings on a tree of characters — words that share a prefix share a path, and a single 'end-of-word' flag separates stored words from in-flight prefixes.
prefix queries · autocomplete · word-searchopen →
single · phase 3live
Topological Sort
Linearize a directed acyclic graph so every edge points left-to-right — each node enters the order only after every prerequisite has already left.
Kahn's algorithm · O(V + E) · cycle detectionopen →