DSA Crash Course
Guides

Daily Schedule — Day-by-Day Plan

Mark when done:

Daily Schedule -- Day-by-Day Breakdown

How to use: Each day, check the box when done. Follow the order. Don't skip days.

Time per day: 4-6 hours (intensive) or 2-3 hours (extended -- double the day count)

Stuck protocol: If stuck > 20 min -> read Hint 1 in the .py file -> try 10 min -> read Hint 2 -> try 10 min -> study the approach -> code it yourself -> mark the problem as "Struggled" so it lands in your redo queue.

Spaced repetition is mandatory. At the end of every Phase 1/2 day, spend 15 minutes re-solving 2 problems from a previous day — the redo queue on the live site picks them for you on a 1/3/7/14-day cadence (see how-to-think.md). Without this loop, Day 21 you will have forgotten Day 4. With it, Day 21 you can re-solve Day 4 in five minutes.


Phase 0 -- Computational Thinking (Days 1-3)

DayTasksTimeStatus
1Read how-to-think.md fully. Study Module 0.1 (States/Transitions/Goals) and 0.2 (Big-O). Do the exercises.3 hrs[ ]
2Study Module 0.3 (Constraint -> Complexity). Practice: for 10 random LeetCode problems, read ONLY the constraints and guess the expected complexity. Study Module 0.4 (Recursion).3 hrs[ ]
3Write recursive solutions for: factorial, fibonacci, reverse string, count tree nodes. Draw recursion trees for fib(6). Identify where work repeats.3 hrs[ ]

Phase 1 -- Foundation Data Structures (Days 4-12)

DayModuleProblems (in order)Time Est.Status
4Arrays & Strings#1 Two Sum (15m) -> #2 Best Time Buy Stock (15m) -> #3 Contains Duplicate (10m) -> #4 Product Except Self (25m)2.5 hrs[ ]
5Arrays & Strings + Prefix Sum#5 Max Subarray (20m) -> #6 Max Product Subarray (25m) -> #11 Longest Palindromic (25m) -> Prefix #1 Range Sum (15m) -> Prefix #2 Subarray Sum=K (25m)3.5 hrs[ ]
6Matrix + Hash MapsMatrix #1-#5 (25m each) -> Hash #2 Group Anagrams (25m) -> Hash #4 Longest Consecutive (25m)4 hrs[ ]
7Linked Lists#1 Reverse LL (15m) -> #2 Detect Cycle (15m) -> #3 Merge Two Sorted (15m) -> #4 Remove Nth (20m) -> #5 Reorder List (25m) -> #6 LRU Cache (40m)3.5 hrs[ ]
8Stacks & Queues#1 Valid Parens (10m) -> #7 Queue via Stacks (15m) -> #2 Min Stack (20m) -> #3 Daily Temps (25m) -> #6 Eval RPN (20m) -> #4 Largest Rect (35m)3.5 hrs[ ]
9Trees Part 1#1 Max Depth (10m) -> #2 Invert Tree (10m) -> #3 Same Tree (10m) -> #9 Diameter (15m) -> #4 Level Order (20m) -> #5 Validate BST (25m)2.5 hrs[ ]
10Trees Part 2#6 LCA (25m) -> #10 Kth Smallest (20m) -> #11 Construct from Preorder+Inorder (30m) -> #12 Right Side View (20m) -> #7 Max Path Sum (35m) -> #8 Serialize/Deserialize (35m)4 hrs[ ]
11Heaps#1 Kth Largest (20m) -> #2 Top K Frequent (25m) -> #5 Task Scheduler (30m) -> #6 Reorganize String (25m) -> #3 Merge K Lists (30m) -> #4 Find Median Stream (35m)4 hrs[ ]
12Graphs#1 Number of Islands (20m) -> #2 Clone Graph (25m) -> #6 Connected Components (20m) -> #3 Course Schedule (25m) -> #4 Pacific Atlantic (30m) -> #5 Graph Valid Tree (25m)3.5 hrs[ ]

Phase 2 -- Algorithmic Paradigms (Days 13-22)

DayModuleProblems (in order)Time Est.Status
13Sorting & Searching Part 1#1 Binary Search (10m) -> #10 Sort Colors (20m) -> #2 Search Rotated (25m) -> #3 Find Min Rotated (20m) -> #7 Search 2D Matrix (20m)2.5 hrs[ ]
14Sorting & Searching Part 2#4 Koko Bananas (25m) -> #11 Time Based KV (25m) -> #5 Split Array (30m) -> #6 Median Two Arrays (40m) -> #8 Merge Sort impl (25m) -> #9 Quick Select (25m)4 hrs[ ]
15Two Pointers#8 Valid Palindrome (10m) -> #5 Remove Dups (10m) -> #6 Move Zeroes (10m) -> #1 Two Sum II (15m) -> #2 3Sum (25m) -> #3 Container Water (20m) -> #4 Trapping Rain (35m)3.5 hrs[ ]
16Sliding Window#1 Max Sum K (15m) -> #8 Min Size Subarray (20m) -> #2 Longest No Repeat (25m) -> #4 Longest Repeating Char (25m) -> #5 Permutation in String (25m) -> #9 Find Anagrams (25m) -> #7 Fruit Baskets (20m) -> #3 Min Window Sub (35m)4.5 hrs[ ]
17BFS & DFS Part 1#1 Number Islands (15m) -> #5 Surrounded Regions (25m) -> #4 Rotting Oranges (25m) -> #6 01 Matrix (25m) -> #3 Clone Graph (20m)3 hrs[ ]
18BFS & DFS Part 2#7 All Paths Source-Target (25m) -> #8 Shortest Path Binary Matrix (25m) -> #9 Min Height Trees (30m) -> #2 Word Ladder (35m)3 hrs[ ]
19Backtracking#1 Subsets (20m) -> #2 Permutations (20m) -> #9 Generate Parens (20m) -> #3 Combo Sum (25m) -> #4 Combo Sum II (25m) -> #8 Letter Combos Phone (20m) -> #7 Word Search (25m) -> #5 Palindrome Partition (30m)4.5 hrs[ ]
20Greedy#1 Jump Game (20m) -> #2 Jump Game II (25m) -> #5 Merge Intervals (20m) -> #6 Non-overlapping (20m) -> #9 Partition Labels (20m) -> #3 Gas Station (25m) -> #10 Valid Paren String (25m) -> #8 Task Scheduler (30m)4.5 hrs[ ]
21Dynamic Programming Part 1#1 Climbing Stairs (10m) -> #2 House Robber (20m) -> #3 House Robber II (20m) -> #9 Decode Ways (25m) -> #4 Coin Change (25m) -> #7 Word Break (30m) -> #14 Partition Equal Subset Sum (30m)4 hrs[ ]
22DP Part 2#8 Unique Paths (15m) -> #5 LIS (25m) -> #6 LCS (25m) -> #10 Edit Distance (30m) -> #11 Target Sum (25m) -> #13 Longest Palindromic Subseq (25m) -> #15 Burst Balloons (40m) -> #17 Max Profit Job Sched (35m)5 hrs[ ]

Phase 3 -- Pattern Recognition (Days 23-38)

See phase-3-patterns/README.md for the full daily routine.

DaysFocusStatus
23-24Drill: Two Pointers, Fast & Slow, Sliding Window. Re-solve 6 problems timed.[ ]
25-26Drill: BFS, DFS, Backtracking. Re-solve 6 problems timed.[ ]
27-28Drill: Binary Search + Prefix Sum. Re-solve 6 problems timed.[ ]
29-30Drill: DP (1D, 2D, Knapsack). Re-solve 6 problems timed.[ ]
31-32Drill: Intervals, Greedy, Monotonic Stack/Queue. Re-solve 6 problems timed.[ ]
33-34Drill: Heaps, Two Heaps, K-way Merge, Top K. Re-solve 6 problems timed.[ ]
35-36Drill: Topo Sort, Union-Find, Trie basics. Re-solve 6 problems timed.[ ]
37-38MIXED: 10 random mediums. Identify pattern before coding. Self-grade with the rubric below.[ ]

Day 37-38 Self-Evaluation Rubric

For each of the 10 mixed problems, score yourself out of 10:

  • 5 pts — wrote the correct pattern name before reading any hint
  • 3 pts — stated correct time / space complexity before coding
  • 2 pts — correct working implementation that passes the LeetCode tests

Score / 100 → next step:

ScoreVerdictAction
< 60Pattern recognition hasn't compounded yetReturn to Phase 2; re-do the modules where you missed pattern IDs
60-80Solid foundation, recognition still slowRepeat Days 23-36 drills for any pattern you misidentified twice
80+Ready for Phase 4Proceed to advanced data structures with confidence

Phase 4 -- Advanced Data Structures (Days 39-48)

DayModuleProblems (in order)Time Est.Status
39Tries#1 Implement Trie (25m) -> #2 Add & Search Words (30m) -> #4 Longest Word (20m)2.5 hrs[ ]
40Tries + Union-Find#5 Replace Words (25m) -> #3 Word Search II (40m) -> UF #1 Connected Components (20m)2.5 hrs[ ]
41Union-Find#2 Redundant Connection (20m) -> #5 Graph Valid Tree (20m) -> #6 Number of Provinces (20m) -> #3 Accounts Merge (30m)2.5 hrs[ ]
42Union-Find + Segment TreesUF #4 Longest Consecutive (20m) -> ST #1 Range Sum Mutable (30m) -> ST #4 My Calendar (25m)2.5 hrs[ ]
43-44Segment Trees (depth)ST #2 Count Smaller After (40m) -> ST #3 Range Min Query (25m). For Google/Meta targets: required. For most other companies, optional — both topics return on Day 47-48 review.2 hrs[ ]
45Advanced Graphs Part 1#1 Network Delay (25m) -> #8 Is Bipartite (20m) -> #3 Course Schedule II (20m) -> #4 Alien Dictionary (35m)3 hrs[ ]
46Advanced Graphs Part 2#5 Min Cost Connect Points (25m) -> #2 Cheapest Flights K (30m) -> #6 Swim Rising Water (35m)2.5 hrs[ ]
47-48Advanced Graphs (optional) + Review weak Phase 4 topics#7 Critical Connections (40m). Re-solve any Phase 4 problems you struggled with.3 hrs[ ]

Phase 5 -- Advanced Algorithms (Days 49-56)

DayModuleProblems (in order)Time Est.Status
49-50Advanced DPStudy Bitmask DP concept -> DP on Trees (House Robber III) -> LIS O(n log n) variant -> Interval DP concept study4 hrs[ ]
51-52Math & Bit Manipulation#1 Single Number (10m) -> #4 Missing Number (10m) -> #2 Number of 1 Bits (15m) -> #3 Counting Bits (15m) -> #5 Reverse Bits (15m) -> #6 Sum Two Integers (25m) -> #7 Pow(x,n) (20m) -> #9 Rotate Image (20m) -> #10 Spiral Matrix (25m)4 hrs[ ]
53-54Intervals#1 Merge Intervals (15m) -> #2 Insert Interval (20m) -> #3 Non-overlapping (20m) -> #4 Meeting Rooms (15m) -> #5 Min Arrows (20m) -> #6 Interval Intersections (25m)3 hrs[ ]
55-56String Algorithms (KMP focused) + Phase 1-5 weak area reviewImplement build_lps(pattern) and kmp_search(text, pattern) from scratch (60-min time-box). If you can explain the failure function, you have it. Then re-solve 6-8 problems from your redo queue.4 hrs[ ]

Phase 6 -- Interview Simulation (Days 57-60)

DayActivityTimeStatus
57Mock #1: 2 random mediums, 45 min timed. Mock #2 same. Review both.4 hrs[ ]
58Mock #3 + #4: include 1 hard each. Write all behavioral STAR stories.5 hrs[ ]
59Mock #5 + #6: do under interview conditions (webcam, talk aloud). System design overview.5 hrs[ ]
60Company-specific review. Re-do problems from redo queue. Final confidence check.4 hrs[ ]

After Day 60

  • Continue solving 1-2 problems/day to maintain sharpness
  • Focus on problems from your redo queue
  • Do 2 mock interviews/week on platforms like interviewing.io or pramp.com
  • Review STAR stories before each behavioral round