A data structure and algorithm practice site. Learn the algorithms and drill the patterns coding interviews actually ask about: two pointers, binary search, trees, heaps, graphs, dynamic programming, backtracking and more, across 546 practice problems in Python, JavaScript and C++.
Every solution comes with a note on every line, written separately for each language: what each name holds, why a bound is what it is, and which input would break the line if it were missing. A step by step replay then shows the code running.
Every problem can be solved three ways: assembled from jigsaw pieces, filled in from a skeleton, or typed from scratch against its tests, so the same problem works whether you are learning the pattern or rehearsing it under interview conditions.
At the typed level, ask for a mock interview on any puzzle. The interviewer watches how you work against a par clock, asks about cost, edge cases and trade-offs, follows up on your answers, and ends with a scorecard across five areas and a verdict from No hire to Strong hire.
Short written lessons on the data structures and algorithm patterns interviews test, each ending in puzzles that use what you just read. Six puzzles are free with no account.
A course on what happens under the hood, taught in the order university systems courses teach it: bits and bytes, two's complement and floating point, big endian vs little endian, CPU caches, stack vs heap memory, virtual memory and paging, garbage collection, and space complexity.
This site needs JavaScript to run the puzzles. Some places to start: