Purpose
This section holds algorithmic tools that recur across many problems. The notes split into two rough groups: core concepts such as graph fundamentals, trees, and induction, and reusable patterns such as BFS, sliding windows, and dynamic programming.
If you are starting from scratch, read graph fundamentals before the graph traversals, then move to breadth-first search, depth-first search, and connected components. For counting arguments and proofs, induction and trees carry a lot of the load.
Entry points
- Graphs: graph fundamentals, BFS, DFS, directed acyclic graphs
- Core structures: trees, bipartite graphs, network flows
- Techniques: induction, divide and conquer, dynamic programming
- Patterns: BFS pattern, sliding window, greedy algorithms