Last Minute Notes

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

  1. How the 30 Days Build on Each Other
  2. How to Run a Day
  3. Day by Day
  4. Problems That Repeat
  5. 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

  1. Read the pattern note for the day (linked under each day heading) for 10 minutes.
  2. Try each problem for 20 to 25 minutes before looking at any hint.
  3. Say the pattern and the invariant out loud before you code.
  4. 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

#ProblemDifficulty
1Two SumEasy
217Contains DuplicateEasy
242Valid AnagramEasy
49Group AnagramsMedium
238Product of Array Except SelfMedium

Day 2: Two Pointers

Notes: Two Pointers

Day 3: Sliding Window

Notes: Sliding Window

Day 4: Prefix Sum

Notes: Prefix Sum and Hash Map

Notes: Modified Binary Search

Day 6: Linked List

Notes: In-Place Reversal

Day 7: Fast & Slow Pointers

Notes: Fast and Slow Pointers

Day 8: Stack

Notes: none yet, see Patterns With No Notes Page Yet

Day 9: Monotonic Stack

Notes: Monotonic Stack

Day 10: Heap / Priority Queue

Notes: Top K Elements, Two Heaps

Day 11: Intervals

Notes: Merge Intervals

#ProblemDifficulty
56Merge IntervalsMedium
57Insert IntervalMedium
435Non-overlapping IntervalsMedium
252Meeting Rooms 🔒Easy
253Meeting Rooms II 🔒Medium

Day 12: Greedy

Notes: Greedy

#ProblemDifficulty
53Maximum SubarrayMedium
55Jump GameMedium
45Jump Game IIMedium
134Gas StationMedium
763Partition LabelsMedium

Day 13: Trees

Notes: Tree Depth-First Search

Day 14: Tree BFS

Notes: Tree Breadth-First Search

Day 15: Binary Search Trees

Notes: Tree Depth-First Search

Day 16: Backtracking

Notes: Subsets and Backtracking

#ProblemDifficulty
78SubsetsMedium
39Combination SumMedium
46PermutationsMedium
90Subsets IIMedium
79Word SearchMedium

Day 17: Graph Traversal

Notes: Tree Depth-First Search

#ProblemDifficulty
200Number of IslandsMedium
695Max Area of IslandMedium
133Clone GraphMedium
417Pacific Atlantic Water FlowMedium
130Surrounded RegionsMedium

Day 18: Graph BFS / Shortest Path

Notes: Tree Breadth-First Search

#ProblemDifficulty
994Rotting OrangesMedium
54201 MatrixMedium
127Word LadderHard
1091Shortest Path in Binary MatrixMedium
752Open the LockMedium

Day 19: Topological Sort

Notes: Topological Sort

#ProblemDifficulty
207Course ScheduleMedium
210Course Schedule IIMedium
269Alien Dictionary 🔒Hard
802Find Eventual Safe StatesMedium
1136Parallel Courses 🔒Medium

Day 20: Union Find

Notes: Union-Find

Day 21: 1D Dynamic Programming

Notes: Dynamic Programming Recipe

#ProblemDifficulty
70Climbing StairsEasy
198House RobberMedium
213House Robber IIMedium
322Coin ChangeMedium
300Longest Increasing SubsequenceMedium

Day 22: 2D Dynamic Programming

Notes: Dynamic Programming Recipe

Day 23: Knapsack / Subset DP

Notes: Dynamic Programming Recipe

#ProblemDifficulty
416Partition Equal Subset SumMedium
494Target SumMedium
1049Last Stone Weight IIMedium
474Ones and ZeroesMedium
377Combination Sum IVMedium

Day 24: Trie

Notes: Trie

Day 25: Bit Manipulation

Notes: Bit Manipulation

#ProblemDifficulty
136Single NumberEasy
191Number of 1 BitsEasy
338Counting BitsEasy
190Reverse BitsEasy
371Sum of Two IntegersMedium

Day 26: Advanced Graphs

Notes: Dijkstra

Day 27: Advanced Strings

Notes: none yet, see Patterns With No Notes Page Yet

Day 28: Advanced Data Structures

Notes: none yet, see Patterns With No Notes Page Yet

#ProblemDifficulty
146LRU CacheMedium
380Insert Delete GetRandom O(1)Medium
355Design TwitterMedium
981Time Based Key-Value StoreMedium
460LFU CacheHard

Day 29: Hard Interview Mix

Notes: Modified Binary Search, K-way Merge, Sliding Window, Monotonic Stack

Day 30: Final Interview Simulation

Notes: none yet, see Patterns With No Notes Page Yet


Problems That Repeat

These appear on more than one day. That is intentional revision, not a typo in the list.


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.

On this page