- search
- DP
- backtracking
- graphs
- path finding
- directed graphs
- connectivity
- weak: spanning tree
- strong: kosaraju’s algorithm
- flows and cuts
- sliding window
- two pointers
- fast slow pointers
- merging
- merge intervals
- k-way merge
- top k elements
- sorting
- greedy
- bit manipulation
see also: algorithms to live by