Arrays & Sequences
The substrate. Contiguous memory, indexing arithmetic, and the first patterns (two pointers and sliding windows) applied on flat data.
Nine modules, ordered by dependency rather than popularity. Each assumes nothing beyond the previous one; each ends with a concrete problem set. Read front to back, or treat it as a reference; the prerequisites are labelled honestly so you can skip without regret.
The substrate. Contiguous memory, indexing arithmetic, and the first patterns (two pointers and sliding windows) applied on flat data.
State, transition, base case: the three-part decomposition that turns intractable recursion into polynomial-time algorithms.
Enter module →Module 02A linked list is the refusal to hold memory in one piece. Each node is a signpost: a small payload and an arrow pointing to the next signpos…
Module 03Strings are arrays with a finite alphabet: usually ASCII, sometimes Unicode, occasionally just {A, C, G, T}. That constraint is a gift. A sm…
Module 04A hash map is a machine that converts the question 'have I seen this key before?' from a linear search into a constant-time lookup. That sin…
Module 05Trees are the first data structure where recursion stops being a cute control-flow trick and becomes the only natural language. A binary tre…
Module 07Almost every problem involving connections (cities by roads, people by friendships, pages by links, tasks by dependencies) is a graph proble…
Module 08Sorting is rarely the goal. Sorting is the <em>preparation</em> that makes the real goal cheap: finding duplicates, computing medians, apply…
Module 09The two-pointer technique and its cousin, the sliding window, are the single most transferable patterns in this curriculum. They appear in a…