Catalog of Technical Topics
The table below is inspired by the tiers provided in [6] (tier 4 is my own):
| Tier | Topic | Description |
|---|---|---|
| 1 | Topics that arise most frequently in interviews and are foundational for other topics. These topics should be studied first. | |
| Dynamic arrays | ||
| String manipulation | ||
| Two pointers | ||
| Grids and matrices | ||
| Binary search | ||
| Sets and maps | ||
| Stacks and queues | ||
| Recursion | ||
| Sorting | ||
| Linked lists | ||
| Trees | ||
| Graphs | ||
| 2 | Important topics that are common in interviews but less foundational. | |
| Heaps | ||
| Sliding windows | ||
| Backtracking | ||
| Topological sort | ||
| Prefix sums | ||
| Dynamic programming | ||
| Greedy algorithms | ||
| 3 | Niche topics. You're largely unlucky if you get one of these (< 20% frequency in interviews). | |
| Monotonic stacks and queues | ||
| Union-find | ||
| Data structure design | ||
| Set and map implementations | ||
| Tries | ||
| Graphs (advanced) | ||
| Dynamic programming (advanced) | ||
| Bit manipulation | ||
| Math | ||
| 4 | Not even listed in the book for whatever reason (possibly far too narrow or specialized or extremely niche). | |