Topics
Fifteen topics, from lockers to charts.
They are in learning order. Arrays come first because everything else is built from them. Dynamic programming comes last because it uses everything.
Array
36 problemsA row of numbered lockers. Things sitting side by side, each with a number on its door.
String
43 problemsLetters on a bead necklace. Words are rows of letters. Count them, flip them, match them.
Searching & Sorting
36 problemsFinding a page in a book. Sorted things let you jump to the middle and throw half away.
Matrix
10 problemsA chocolate bar of squares. Rows and columns, like a board game or a chocolate bar.
Linked List
36 problemsA toy train. Cars hooked one to the next. You only see the next car.
Stacks & Queues
38 problemsA pile of plates and a lunch line. Last in comes out first in a pile. First in comes out first in a line.
Bit Manipulation
10 problemsA row of light switches. Every number is a row of switches that are on or off.
Binary Trees
35 problemsA family tree. Each parent has at most two children, a left one and a right one.
Binary Search Trees
22 problemsA guessing game tree. Smaller things go left, bigger things go right. Every time.
Heap
18 problemsA line where the smallest kid is always first. A tree that always keeps the smallest (or biggest) thing on top.
Greedy
35 problemsGrabbing the best candy first. Take the best looking choice now, and never look back.
Backtracking
19 problemsExploring a maze and walking back. Try a choice, go deeper, and step back when you hit a wall.
Trie
6 problemsA tree of letters. Words that start the same share the same branch.
Graph
43 problemsTowns and roads. Dots joined by lines. Any dot can connect to any other.
Dynamic Programming
60 problemsWriting answers on a chart so you never redo homework. Solve small versions once, write them down, build the big answer.