LeetCode 30-Day Plan
A 30-day, five-problems-a-day LeetCode revision plan grouped by pattern, with direct problem links, difficulty tags, and pointers to the matching pattern notes.
📘 LeetCode 30-Day Revision Plan
A pattern-by-pattern practice list: 30 days, 5 problems a day, 150 slots. It is meant to be run after (or alongside) the pattern notes in this section, so most days link back to the note that teaches the pattern. Only the problem lists are included here. Worked solutions are in the pattern pages, not here.
138 problems are unique (31 Easy, 95 Medium, 12 Hard). The rest are deliberate repeats, for example Daily Temperatures on both Day 8 and Day 9. 🔒 marks a LeetCode Premium problem (252, 253, 269, 1136, 261, 271).
Table of Contents
- How the 30 Days Build on Each Other
- How to Run a Day
- Day by Day
- Problems That Repeat
- Patterns With No Notes Page Yet
How the 30 Days Build on Each Other
Read the tree left to right: a pattern sits to the right of the pattern it builds on. D1 to D30 are the day numbers. The schedule below stays in day order, but the tree shows which earlier pattern to revisit when a day feels hard. If you are short on time, finish one branch at a time.
How to Run a Day
- Read the pattern note for the day (linked under each day heading) for 10 minutes.
- Try each problem for 20 to 25 minutes before looking at any hint.
- Say the pattern and the invariant out loud before you code.
- Mark any problem you needed a hint for and redo it a week later.
Day 30 is a simulation. Do it in one sitting with a timer and no notes.
Day by Day
Day 1: Arrays & Hashing
Notes: none yet, see Patterns With No Notes Page Yet
| # | Problem | Difficulty |
|---|---|---|
| 1 | Two Sum | Easy |
| 217 | Contains Duplicate | Easy |
| 242 | Valid Anagram | Easy |
| 49 | Group Anagrams | Medium |
| 238 | Product of Array Except Self | Medium |
Day 2: Two Pointers
Notes: Two Pointers
| # | Problem | Difficulty |
|---|---|---|
| 125 | Valid Palindrome | Easy |
| 167 | Two Sum II - Input Array Is Sorted | Medium |
| 15 | 3Sum | Medium |
| 11 | Container With Most Water | Medium |
| 42 | Trapping Rain Water | Hard |
Day 3: Sliding Window
Notes: Sliding Window
| # | Problem | Difficulty |
|---|---|---|
| 121 | Best Time to Buy and Sell Stock | Easy |
| 3 | Longest Substring Without Repeating Characters | Medium |
| 424 | Longest Repeating Character Replacement | Medium |
| 567 | Permutation in String | Medium |
| 76 | Minimum Window Substring | Hard |
Day 4: Prefix Sum
Notes: Prefix Sum and Hash Map
| # | Problem | Difficulty |
|---|---|---|
| 1480 | Running Sum of 1d Array | Easy |
| 303 | Range Sum Query - Immutable | Easy |
| 560 | Subarray Sum Equals K | Medium |
| 724 | Find Pivot Index | Easy |
| 238 | Product of Array Except Self | Medium |
Day 5: Binary Search
Notes: Modified Binary Search
| # | Problem | Difficulty |
|---|---|---|
| 704 | Binary Search | Easy |
| 74 | Search a 2D Matrix | Medium |
| 875 | Koko Eating Bananas | Medium |
| 153 | Find Minimum in Rotated Sorted Array | Medium |
| 33 | Search in Rotated Sorted Array | Medium |
Day 6: Linked List
Notes: In-Place Reversal
| # | Problem | Difficulty |
|---|---|---|
| 206 | Reverse Linked List | Easy |
| 21 | Merge Two Sorted Lists | Easy |
| 141 | Linked List Cycle | Easy |
| 19 | Remove Nth Node From End of List | Medium |
| 143 | Reorder List | Medium |
Day 7: Fast & Slow Pointers
Notes: Fast and Slow Pointers
| # | Problem | Difficulty |
|---|---|---|
| 141 | Linked List Cycle | Easy |
| 202 | Happy Number | Easy |
| 876 | Middle of the Linked List | Easy |
| 287 | Find the Duplicate Number | Medium |
| 234 | Palindrome Linked List | Easy |
Day 8: Stack
Notes: none yet, see Patterns With No Notes Page Yet
| # | Problem | Difficulty |
|---|---|---|
| 20 | Valid Parentheses | Easy |
| 155 | Min Stack | Medium |
| 150 | Evaluate Reverse Polish Notation | Medium |
| 22 | Generate Parentheses | Medium |
| 739 | Daily Temperatures | Medium |
Day 9: Monotonic Stack
Notes: Monotonic Stack
| # | Problem | Difficulty |
|---|---|---|
| 739 | Daily Temperatures | Medium |
| 496 | Next Greater Element I | Easy |
| 503 | Next Greater Element II | Medium |
| 84 | Largest Rectangle in Histogram | Hard |
| 853 | Car Fleet | Medium |
Day 10: Heap / Priority Queue
Notes: Top K Elements, Two Heaps
| # | Problem | Difficulty |
|---|---|---|
| 215 | Kth Largest Element in an Array | Medium |
| 1046 | Last Stone Weight | Easy |
| 973 | K Closest Points to Origin | Medium |
| 347 | Top K Frequent Elements | Medium |
| 295 | Find Median from Data Stream | Hard |
Day 11: Intervals
Notes: Merge Intervals
| # | Problem | Difficulty |
|---|---|---|
| 56 | Merge Intervals | Medium |
| 57 | Insert Interval | Medium |
| 435 | Non-overlapping Intervals | Medium |
| 252 | Meeting Rooms 🔒 | Easy |
| 253 | Meeting Rooms II 🔒 | Medium |
Day 12: Greedy
Notes: Greedy
| # | Problem | Difficulty |
|---|---|---|
| 53 | Maximum Subarray | Medium |
| 55 | Jump Game | Medium |
| 45 | Jump Game II | Medium |
| 134 | Gas Station | Medium |
| 763 | Partition Labels | Medium |
Day 13: Trees
Notes: Tree Depth-First Search
| # | Problem | Difficulty |
|---|---|---|
| 226 | Invert Binary Tree | Easy |
| 104 | Maximum Depth of Binary Tree | Easy |
| 543 | Diameter of Binary Tree | Easy |
| 110 | Balanced Binary Tree | Easy |
| 100 | Same Tree | Easy |
Day 14: Tree BFS
Notes: Tree Breadth-First Search
| # | Problem | Difficulty |
|---|---|---|
| 102 | Binary Tree Level Order Traversal | Medium |
| 199 | Binary Tree Right Side View | Medium |
| 637 | Average of Levels in Binary Tree | Easy |
| 103 | Binary Tree Zigzag Level Order Traversal | Medium |
| 116 | Populating Next Right Pointers in Each Node | Medium |
Day 15: Binary Search Trees
Notes: Tree Depth-First Search
| # | Problem | Difficulty |
|---|---|---|
| 700 | Search in a Binary Search Tree | Easy |
| 98 | Validate Binary Search Tree | Medium |
| 230 | Kth Smallest Element in a BST | Medium |
| 235 | Lowest Common Ancestor of a Binary Search Tree | Medium |
| 450 | Delete Node in a BST | Medium |
Day 16: Backtracking
Notes: Subsets and Backtracking
| # | Problem | Difficulty |
|---|---|---|
| 78 | Subsets | Medium |
| 39 | Combination Sum | Medium |
| 46 | Permutations | Medium |
| 90 | Subsets II | Medium |
| 79 | Word Search | Medium |
Day 17: Graph Traversal
Notes: Tree Depth-First Search
| # | Problem | Difficulty |
|---|---|---|
| 200 | Number of Islands | Medium |
| 695 | Max Area of Island | Medium |
| 133 | Clone Graph | Medium |
| 417 | Pacific Atlantic Water Flow | Medium |
| 130 | Surrounded Regions | Medium |
Day 18: Graph BFS / Shortest Path
Notes: Tree Breadth-First Search
| # | Problem | Difficulty |
|---|---|---|
| 994 | Rotting Oranges | Medium |
| 542 | 01 Matrix | Medium |
| 127 | Word Ladder | Hard |
| 1091 | Shortest Path in Binary Matrix | Medium |
| 752 | Open the Lock | Medium |
Day 19: Topological Sort
Notes: Topological Sort
| # | Problem | Difficulty |
|---|---|---|
| 207 | Course Schedule | Medium |
| 210 | Course Schedule II | Medium |
| 269 | Alien Dictionary 🔒 | Hard |
| 802 | Find Eventual Safe States | Medium |
| 1136 | Parallel Courses 🔒 | Medium |
Day 20: Union Find
Notes: Union-Find
| # | Problem | Difficulty |
|---|---|---|
| 547 | Number of Provinces | Medium |
| 684 | Redundant Connection | Medium |
| 721 | Accounts Merge | Medium |
| 261 | Graph Valid Tree 🔒 | Medium |
| 947 | Most Stones Removed with Same Row or Column | Medium |
Day 21: 1D Dynamic Programming
Notes: Dynamic Programming Recipe
| # | Problem | Difficulty |
|---|---|---|
| 70 | Climbing Stairs | Easy |
| 198 | House Robber | Medium |
| 213 | House Robber II | Medium |
| 322 | Coin Change | Medium |
| 300 | Longest Increasing Subsequence | Medium |
Day 22: 2D Dynamic Programming
Notes: Dynamic Programming Recipe
| # | Problem | Difficulty |
|---|---|---|
| 62 | Unique Paths | Medium |
| 1143 | Longest Common Subsequence | Medium |
| 309 | Best Time to Buy and Sell Stock with Cooldown | Medium |
| 518 | Coin Change II | Medium |
| 97 | Interleaving String | Medium |
Day 23: Knapsack / Subset DP
Notes: Dynamic Programming Recipe
| # | Problem | Difficulty |
|---|---|---|
| 416 | Partition Equal Subset Sum | Medium |
| 494 | Target Sum | Medium |
| 1049 | Last Stone Weight II | Medium |
| 474 | Ones and Zeroes | Medium |
| 377 | Combination Sum IV | Medium |
Day 24: Trie
Notes: Trie
| # | Problem | Difficulty |
|---|---|---|
| 208 | Implement Trie (Prefix Tree) | Medium |
| 211 | Design Add and Search Words Data Structure | Medium |
| 212 | Word Search II | Hard |
| 421 | Maximum XOR of Two Numbers in an Array | Medium |
| 648 | Replace Words | Medium |
Day 25: Bit Manipulation
Notes: Bit Manipulation
| # | Problem | Difficulty |
|---|---|---|
| 136 | Single Number | Easy |
| 191 | Number of 1 Bits | Easy |
| 338 | Counting Bits | Easy |
| 190 | Reverse Bits | Easy |
| 371 | Sum of Two Integers | Medium |
Day 26: Advanced Graphs
Notes: Dijkstra
| # | Problem | Difficulty |
|---|---|---|
| 743 | Network Delay Time | Medium |
| 787 | Cheapest Flights Within K Stops | Medium |
| 1584 | Min Cost to Connect All Points | Medium |
| 778 | Swim in Rising Water | Hard |
| 332 | Reconstruct Itinerary | Hard |
Day 27: Advanced Strings
Notes: none yet, see Patterns With No Notes Page Yet
| # | Problem | Difficulty |
|---|---|---|
| 5 | Longest Palindromic Substring | Medium |
| 647 | Palindromic Substrings | Medium |
| 271 | Encode and Decode Strings 🔒 | Medium |
| 139 | Word Break | Medium |
| 1143 | Longest Common Subsequence | Medium |
Day 28: Advanced Data Structures
Notes: none yet, see Patterns With No Notes Page Yet
| # | Problem | Difficulty |
|---|---|---|
| 146 | LRU Cache | Medium |
| 380 | Insert Delete GetRandom O(1) | Medium |
| 355 | Design Twitter | Medium |
| 981 | Time Based Key-Value Store | Medium |
| 460 | LFU Cache | Hard |
Day 29: Hard Interview Mix
Notes: Modified Binary Search, K-way Merge, Sliding Window, Monotonic Stack
| # | Problem | Difficulty |
|---|---|---|
| 4 | Median of Two Sorted Arrays | Hard |
| 23 | Merge k Sorted Lists | Hard |
| 42 | Trapping Rain Water | Hard |
| 76 | Minimum Window Substring | Hard |
| 84 | Largest Rectangle in Histogram | Hard |
Day 30: Final Interview Simulation
Notes: none yet, see Patterns With No Notes Page Yet
| # | Problem | Difficulty |
|---|---|---|
| 1 | Two Sum | Easy |
| 3 | Longest Substring Without Repeating Characters | Medium |
| 200 | Number of Islands | Medium |
| 207 | Course Schedule | Medium |
| 322 | Coin Change | Medium |
Problems That Repeat
These appear on more than one day. That is intentional revision, not a typo in the list.
| # | Problem | Days |
|---|---|---|
| 1 | Two Sum | 1, 30 |
| 3 | Longest Substring Without Repeating Characters | 3, 30 |
| 42 | Trapping Rain Water | 2, 29 |
| 76 | Minimum Window Substring | 3, 29 |
| 84 | Largest Rectangle in Histogram | 9, 29 |
| 141 | Linked List Cycle | 6, 7 |
| 200 | Number of Islands | 17, 30 |
| 207 | Course Schedule | 19, 30 |
| 238 | Product of Array Except Self | 1, 4 |
| 322 | Coin Change | 21, 30 |
| 739 | Daily Temperatures | 8, 9 |
| 1143 | Longest Common Subsequence | 22, 27 |
Patterns With No Notes Page Yet
The 14 pattern pages and the Playbook cover most days. These days have no matching note here yet:
- Day 1, Arrays and Hashing: hash map and hash set lookups. The Playbook's complexity cheat sheet has the costs.
- Day 8, Stack: matching and evaluation with a plain stack. Monotonic Stack is the closest note.
- Day 27, Advanced Strings: expand-around-center palindromes and string encoding. The Dynamic Programming Recipe covers the Word Break and Longest Common Subsequence style of DP.
- Day 28, Advanced Data Structures: LRU, LFU, and other design problems that combine a hash map with a linked list or heap.
- Day 30, Final Interview Simulation: mixed problems. Use the Playbook's decision flow to pick the pattern.