| 1 |
Sliding Window |
"subarray", "substring", "window of size k", "contiguous" |
O(n) |
src/dsa/sliding_window.cpp |
| 2 |
Two Pointers |
"sorted array", "pair sum", "remove duplicates", "palindrome" |
O(n) |
src/dsa/two_pointers.cpp |
| 3 |
Binary Search on Answer |
"minimum maximum", "capacity", "kth smallest", "feasibility check" |
O(n log range) |
src/dsa/binary_search_on_answer.cpp |
| 4 |
Monotonic Stack |
"next greater", "previous smaller", "histogram", "temperatures" |
O(n) |
src/dsa/monotonic_stack.cpp |
| 5 |
Union-Find |
"connected components", "grouping", "redundant connection", "accounts" |
O(α(n)) |
src/dsa/union_find.cpp |
| 6 |
Trie |
"prefix search", "autocomplete", "word dictionary", "longest prefix" |
O(L) per op |
src/dsa/trie.cpp |
| 7 |
Topological Sort |
"prerequisites", "course schedule", "build order", DAG dependencies |
O(V+E) |
src/dsa/topological_sort.cpp |
| 8 |
Segment Tree |
"range query + update", "interval sum/min/max", "mutable array" |
O(log n) per op |
src/dsa/segment_tree.cpp |
| 9 |
Bit Manipulation |
"XOR", "single number", "power of 2", "subsets", "toggle" |
O(n) or O(2^n) |
src/dsa/bit_manipulation.cpp |
| 10 |
BFS/DFS |
"shortest path (unweighted)", "number of islands", "tree traversal" |
O(V+E) |
|
| 11 |
Dynamic Programming |
"optimal", "count ways", "min/max cost", "can you reach" |
Varies |
|
| 12 |
Greedy |
"earliest deadline", "intervals", "huffman", "local optimal → global" |
O(n log n) |
|
| 13 |
Backtracking |
"all combinations", "permutations", "N-Queens", "Sudoku" |
O(k^n) |
|
| 14 |
Divide & Conquer |
"merge sort", "closest pair", "count inversions" |
O(n log n) |
|
| 15 |
Heap / Priority Queue |
"kth largest", "top K", "merge K lists", "median stream" |
O(n log k) |
|
| 16 |
Graph (Dijkstra) |
"shortest path (weighted)", "network delay", "minimum cost" |
O(E log V) |
|
| 17 |
LRU/LFU Cache |
"design cache", "eviction policy", "O(1) get/put" |
O(1) |
src/stl_like/lru_cache.cpp |
| 18 |
Hash Map Design |
"O(1) lookup", "two sum", "group anagrams", "frequency count" |
O(1) avg |
src/stl_like/hash_map.cpp |
| 19 |
Interval Merge |
"overlapping intervals", "meeting rooms", "insert interval" |
O(n log n) |
|
| 20 |
Fast/Slow Pointer |
"cycle detection", "middle of list", "happy number" |
O(n) |
|