Difficulty Progression
A structured, ordered approach to tackling all topics — from zero to interview-ready. Follow the phases in order. Don’t skip ahead.
Phase 0 — Foundations (Week 1–2)
Master these first. Every other topic builds on them.
| Order | Topic | Key Concept | First Problem |
|---|---|---|---|
| 1 | Complexity | Big O, time/space analysis | Understand before coding anything |
| 2 | HashMap | O(1) lookup, frequency counting | #1 Two Sum |
| 3 | Two Pointers | Left/right converging | #125 Valid Palindrome |
| 4 | Sliding Window | Moving subarray | #643 Max Avg Subarray I |
| 5 | Stack | LIFO, next greater element | #20 Valid Parentheses |
Goal: Solve 2–3 Easy problems per topic. No Hard problems yet.
Phase 1 — Core Data Structures (Week 3–4)
| Order | Topic | Key Concept | First Problem |
|---|---|---|---|
| 6 | Recursion | Base case + subproblem | #509 Fibonacci Number |
| 7 | Linked List | Two pointers on list, dummy node | #206 Reverse Linked List |
| 8 | Tree DFS | Pre/in/post order | #104 Max Depth of Binary Tree |
| 9 | Tree BFS | Level order, queue | #102 Binary Tree Level Order |
| 10 | BST | Search, insert, validate | #700 Search in a BST |
| 11 | Heap | Top K elements, priority queue | #703 Kth Largest in Stream |
Goal: Mix of Easy and Medium. Start attempting Mediums independently.
Phase 2 — Algorithms (Week 5–7)
| Order | Topic | Key Concept | First Problem |
|---|---|---|---|
| 12 | Binary Search | Eliminate half, boundary conditions | #704 Binary Search |
| 13 | Graph BFS | Grid traversal, connected components | #200 Number of Islands |
| 14 | Graph DFS | Cycle detection, DFS on explicit graph | #133 Clone Graph |
| 15 | Greedy | Sort by key, exchange argument | #455 Assign Cookies |
| 16 | Backtracking | Make/recurse/undo template | #78 Subsets |
| 17 | Divide & Conquer | Merge sort, quick select | #215 Kth Largest Element |
Goal: All Mediums. Begin attempting Easy Hards.
Phase 3 — Dynamic Programming (Week 8–10)
DP is the hardest topic. Spend 2–3 weeks here.
| Order | Sub-topic | First Problem | Hard version |
|---|---|---|---|
| 1D DP | Single variable | #70 Climbing Stairs | #139 Word Break |
| 1D DP | Skip/take decision | #198 House Robber | #213 House Robber II |
| 1D DP | Unbounded knapsack | #322 Coin Change | #518 Coin Change II |
| 2D DP | Subsequences | #300 Longest Inc. Subsequence | #1143 LCS |
| 2D DP | Grid DP | #62 Unique Paths | #64 Min Path Sum |
Goal: 15–20 DP problems minimum. Understand the pattern for each sub-type.
Phase 4 — Advanced Graphs (Week 11–12)
| Order | Topic | Key Concept | First Problem |
|---|---|---|---|
| 18 | Topological Sort | DAG ordering, cycle detection | #207 Course Schedule |
| 19 | Union Find | DSU template, path compression | #547 Number of Provinces |
| 20 | Dijkstra | Weighted shortest path | #743 Network Delay Time |
| 21 | Bellman-Ford | Negative weights, k-stops | #787 Cheapest Flights K Stops |
| 22 | A* Search | Heuristic-guided search | #1091 Shortest Path Binary Matrix |
Phase 5 — Advanced Data Structures (Week 13–14)
| Order | Topic | Use Case | First Problem |
|---|---|---|---|
| 23 | Trie | Prefix matching | #208 Implement Trie |
| 24 | Segment Tree | Range queries + updates | #307 Range Sum Query Mutable |
| 25 | Fenwick Tree | Prefix sums + updates | #307 Range Sum Query Mutable |
| 26 | AVL Trees | Self-balancing BST | Concept + #1382 |
| 27 | Suffix Array | Advanced string problems | #1044 Longest Dup Substring |
Recommended Weekly Targets
| Week | Focus | Problems/Week |
|---|---|---|
| 1–2 | Phase 0 (foundations) | 10–15 Easy |
| 3–4 | Phase 1 (data structures) | 15–20 Easy+Medium |
| 5–7 | Phase 2 (algorithms) | 20–25 Medium |
| 8–10 | Phase 3 (DP) | 20–25 Medium+Hard |
| 11–12 | Phase 4 (advanced graphs) | 15–20 Medium+Hard |
| 13–14 | Phase 5 (advanced DS) | 10–15 Hard |
Progress Checkpoints
Before moving to the next phase, make sure you can:
- After Phase 0: Solve any Easy problem involving arrays, strings, or hash maps within 15 minutes
- After Phase 1: Implement a BST, traverse a tree in all orders, and reverse a linked list from memory
- After Phase 2: Solve most LeetCode Mediums in graph, binary search, and backtracking topics
- After Phase 3: Recognize DP problems, define the state, and write the recurrence before coding
- After Phase 4: Implement Dijkstra and topological sort from memory
- After Phase 5: Know when each advanced DS applies and implement the core template
Problem Count Target for Interviews
| Level | Problems Solved | Ready For |
|---|---|---|
| 50 | Mostly Easy | Initial screening, startups |
| 100 | Easy + Medium | Most mid-level roles |
| 150 | Mix + some Hard | FAANG / top-tier roles |
| 200+ | All patterns + Hard | Senior / Staff interviews |
Quality > quantity. 75 well-understood problems beat 200 problems you half-remember.