Data Structures & Algorithms
Enjoy learning algorithms.
-
Complexity & Analysis
Big-O, recurrences, amortized bounds, memory, and constant factors.
After Complexity & Analysis
Arrays, Lists & Linear Structures
Dynamic arrays, linked lists, deques, stacks, queues, two pointers, and prefix sums.
After Arrays, Lists & Linear Structures
Sorting & Searching
Comparison and linear-time sorts, library sorts, binary search, and selection.
After Arrays, Lists & Linear Structures
Hashing
Collisions, load factor and rehashing, hash functions, and hash flooding.
After Sorting & Searching
Trees, Heaps & Ordered Structures
Tree traversal, BSTs and balancing, heaps and priority queues, and B-trees.
After Sorting & Searching, Hashing
Problem Solving Method
Reading problems, constraints, observations, proofs, testing, debugging, and practice.
After Sorting & Searching, Problem Solving Method
Algorithmic Paradigms
Backtracking, greedy, divide and conquer, DP, and binary search on answers.
After Trees, Heaps & Ordered Structures, Hashing
Graphs
Traversal, DAGs, shortest paths, spanning trees, connectivity, and flow.
After Hashing, Sorting & Searching
Strings
String costs, KMP and Z, rolling hashes, tries, and suffix structures.
After Trees, Heaps & Ordered Structures, Graphs
Range Queries & Advanced Structures
Union-find, Fenwick and segment trees, sparse tables and LCA, and randomized structures.
After Range Queries & Advanced Structures
DEMON: Contest Machinery
Optional and brutal. Contest machinery from Universal Cup, ICPC World Finals, and Chinese OI. No interviewer will ever ask you this.