toolkit
the syllabus map — every structure and technique, by tier.
data structuresstructure
core
- array / dynamic array
- string
- hash map / dictionary
- hash set
- linked list (singly & doubly)
- stack (LIFO)
- queue (FIFO)
- deque (double-ended)
- heap / priority queue
- binary tree
- binary search tree (BST)
- trie (prefix tree)
- graph (adjacency list / matrix)
- matrix / 2D grid
intermediate
- union-find / disjoint set union
- monotonic stack
- monotonic deque
- balanced BST (AVL / red-black)
- ordered / sorted container
- LRU / LFU cache
- segment tree
- fenwick tree / binary indexed tree
stretch
- segment tree with lazy propagation
- sparse table
- bloom filter
- b-tree / b+ tree
- skip list
- k-d tree
techniques & patternstechnique
core
- two pointers — opposite ends
- two pointers — fast/slow
- sliding window
- prefix sums (1D & 2D)
- binary search on a sorted array
- binary search on the answer / search space
- sorting + custom comparators
- hashing for counting & grouping
- recursion
- tree traversals
- graph DFS
- graph BFS
- backtracking
- dynamic programming
- 1D DP
- 2D / grid DP
- knapsack family
- interval DP
- DP on subsequences
- DP on trees
- bitmask DP
- state-machine DP
- digit DP
intermediate
- greedy
- divide and conquer
- quickselect
- topological sort
- dijkstra's
- bellman-ford
- floyd-warshall
- kruskal's / prim's (MST)
- bit manipulation
- intervals
- line sweep / sweep line
- cyclic sort
- dutch national flag / 3-way partition
- boyer-moore majority vote
- two heaps
- in-place matrix ops
- math / number theory basics
stretch
- trie + DFS combo
- string matching (KMP / Z / Rabin-Karp)
- manacher's algorithm
- meet in the middle
- LCA via binary lifting / euler tour
- reservoir sampling
- a* search