11 parts · 18 chapters
Data Structures and Algorithms, Complete
The core of a computer science degree, taught through code you run. Data structures decide what is cheap; algorithms decide how work grows as data grows. On this machine, finding duplicates among 50,000 numbers took 727 ms with nested loops, 9.8 ms by sorting and 2.8 ms with a hash set: that gap is what this course is about.
Eleven parts: complexity and amortisation; arrays, lists, stacks and queues; hashing; trees and balancing; heaps and priority queues; graphs from BFS to flows; dynamic programming; greedy algorithms; string algorithms; randomised algorithms; and the patterns behind interview problems. It extends the frontend-focused Algorithms course.
complexityBig-O, amortised analysis, and measuring rather than guessing.
structuresArrays, linked lists, hash tables, trees, heaps, tries, union-find.
graphsBFS, DFS, topological sort, Dijkstra, MST, max flow.
DP and greedyRecognising overlapping subproblems and greedy-choice properties.
stringsKMP, rolling hashes, tries, suffix structures.
patternsTwo pointers, sliding window, binary search on answers, backtracking.
00
Complexity and Amortisation
Growth rates, measured · Amortised analysis
2 ch · ~12 min01Arrays, Lists, Stacks and Queues
What each structure makes cheap · Monotonic stacks and a ring buffer
2 ch · ~12 min02Hashing
How hash tables work · Patterns hashing makes trivial
2 ch · ~12 min03Trees and Balancing
Binary search trees · B-trees, tries, range trees and union-find
2 ch · ~12 min04Heaps and Priority Queues
The binary heap
1 ch · ~8 min05Graphs
Algorithms by question · Graphs in disguise
2 ch · ~12 min06Dynamic Programming
The method · Classic problems
2 ch · ~12 min07Greedy Algorithms
When the locally best choice is globally best
1 ch · ~8 min08String Algorithms
Searching text
1 ch · ~8 min09Randomised Algorithms
Randomness as a tool
1 ch · ~8 min10Interview Patterns
Shapes, not tricks · The interview method and a practice plan
2 ch · ~12 minExtends Algorithms (frontend)The Algorithms course covered what the frontend runs on; this course is the complete general foundation. Discrete Maths (course 25) supplies the proofs; Algorithms Backends Run On (course 21) applies it.