Algorithm Learning Platform
Lessons
- Arraysbeginner
Why indexing is one calculation, not a search — and what it costs to disturb a contiguous layout.
- Dynamic Arraysbeginner
Why push is amortised O(1), and what the textbook hides behind that word.
- Hash Mapsbeginner
How a key turns into an index — and what bookkeeping the rest of the data structure exists to do.
- Hash Setsbeginner
A hash map with the value column thrown away — and one operation that justifies the whole separate API.
- Stringsbeginner
Why a string is an array of integers with an encoding rule on top — and where the gap between integers and characters becomes a bug.
- Linked lists (singly)beginner
A chain of pointers, not a row of slots — and what you actually pay for the cheap splice the textbook keeps promising.
- Linked lists (doubly)beginner
What changes when each node knows its predecessor too — and why every LRU cache, kernel scheduler, and `LinkedHashMap` is built on it.
- Stacksbeginner
A discipline you spot, not a structure you build — and the one rule that quietly governs Cmd+Z, your browser back button, and every function call your CPU has ever made.
- Queuesbeginner
FIFO needs O(1) at both ends — and the obvious array-with-shift implementation is quietly O(n). Why the production answer is a ring buffer.
- Dequesbeginner
A queue where every operation has a mirror at the other end. Once you have both ends in O(1), patterns the queue alone could not express — sliding-window maximums, work-stealing, undo histories — fall out of one structure.
- Trees (general)beginner
A linked list with many nexts — and the recursive shape that turns six lines of code into every algorithm trees need.