Data Structures & Algorithms
Read the theory, then drill the patterns. Every problem ships with starter code, progressive hints, a worked-out solution, and an automated test runner that checks your work against multiple test cases.
Theory
What O(1), O(n), and O(log n) really mean — and why getting them right is half of CS.
Contiguous memory, indices, and the patterns that solve 80% of array problems: two pointers and sliding window.
How hash tables work — and why they turn O(n²) problems into O(n) ones.
Pointer manipulation, dummy nodes, fast/slow pointers — and when a linked list is actually the right answer.
LIFO, FIFO, and a clever variant that solves the "next greater element" family of problems.
Recursion as a tool, traversals (preorder/inorder/postorder), and the BST invariant.
The most universal data structure in CS. Friend networks, road maps, dependency graphs — all the same algorithms.
Memoization, tabulation, and a framework for recognizing and solving DP problems.
When local choices reach a global optimum (greedy) — and what to do when they don't (backtracking).
The toolkit that separates intermediate from expert: priority queues, prefix trees, and disjoint-set union.