Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Appendix J: 90-Day Study Plan

A comprehensive week-by-week plan to master all DSA topics. This plan assumes 3-4 hours of study per day.


Overview

  • Duration: 13 weeks (90 days)
  • Daily commitment: 3-4 hours
  • Weekly pattern: 5 days learning + 1 day practice + 1 day review
  • Total problems: ~300-400
  • Goal: Complete mastery of all major DSA topics

Week 1: Arrays & Strings (Days 1-7)

Day 1: Array Fundamentals

  • Array basics: memory layout, time complexity
  • Two-pointer technique
  • Problems: Two Sum, Remove Duplicates from Sorted Array
  • Practice: 2-3 easy problems

Day 2: String Fundamentals

  • String operations, ASCII/Unicode
  • String comparison, substring extraction
  • Problems: Valid Anagram, Reverse String
  • Practice: 2-3 easy problems

Day 3: Sliding Window

  • Fixed-size and variable-size windows
  • Problems: Maximum Subarray (Kadane’s), Longest Substring Without Repeating Characters
  • Practice: 2-3 medium problems

Day 4: Two Pointers

  • Two pointers on sorted arrays
  • Problems: 3Sum, Container With Most Water
  • Practice: 2-3 medium problems

Day 5: Prefix Sums & Hashing

  • Prefix sum technique
  • Hash map for frequency counting
  • Problems: Product of Array Except Self, Subarray Sum Equals K
  • Practice: 2-3 medium problems

Day 6: Practice Day

  • Solve 5-6 problems on arrays and strings
  • Focus on medium difficulty
  • Review any topics you struggled with

Day 7: Review Day

  • Review all concepts from the week
  • Redo any problems you couldn’t solve
  • Update your notes and cheat sheets

Week 2: Linked Lists & Stacks/Queues (Days 8-14)

Day 8: Singly Linked List

  • Node structure, traversal, insertion, deletion
  • Problems: Reverse Linked List, Merge Two Sorted Lists
  • Practice: 2-3 easy problems

Day 9: Linked List Techniques

  • Fast/slow pointers (Floyd’s algorithm)
  • Problems: Detect Cycle, Find Cycle Start, Middle of Linked List
  • Practice: 2-3 medium problems

Day 10: Advanced Linked List

  • LRU Cache implementation
  • Problems: Merge K Sorted Lists, Remove Nth Node From End
  • Practice: 2-3 medium problems

Day 11: Stack Fundamentals

  • Stack operations, applications
  • Problems: Valid Parentheses, Min Stack
  • Practice: 2-3 easy/medium problems

Day 12: Monotonic Stack

  • Monotonic stack technique
  • Problems: Daily Temperatures, Next Greater Element, Largest Rectangle in Histogram
  • Practice: 2-3 medium problems

Day 13: Queue & Deque

  • Queue operations, deque
  • Problems: Sliding Window Maximum, Implement Queue using Stacks
  • Practice: 2-3 medium problems

Day 14: Review Day

  • Review linked lists, stacks, queues
  • Redo challenging problems
  • Update notes

Week 3: Trees - Basics (Days 15-21)

Day 15: Binary Tree Basics

  • Tree terminology, traversals (pre/in/post/level order)
  • Problems: Maximum Depth, Same Tree, Invert Tree
  • Practice: 2-3 easy problems

Day 16: Tree Traversals

  • Iterative traversals
  • Morris traversal (optional)
  • Problems: Binary Tree Inorder Traversal, Level Order Traversal
  • Practice: 2-3 medium problems

Day 17: Tree Properties

  • Balanced tree, symmetric tree, path sum
  • Problems: Balanced Binary Tree, Symmetric Tree, Path Sum
  • Practice: 2-3 easy/medium problems

Day 18: BST Operations

  • BST search, insert, delete
  • Problems: Validate BST, Kth Smallest Element in BST
  • Practice: 2-3 medium problems

Day 19: Tree Construction

  • Build tree from traversals
  • Problems: Construct Binary Tree from Preorder and Inorder
  • Practice: 2-3 medium problems

Day 20: LCA & Path Problems

  • Lowest Common Ancestor
  • Problems: LCA of Binary Tree, Binary Tree Maximum Path Sum
  • Practice: 2-3 medium/hard problems

Day 21: Review Day

  • Review all tree concepts
  • Redo challenging problems
  • Update notes

Week 4: Trees - Advanced (Days 22-28)

Day 22: Tree Serialization

  • Serialize/deserialize trees
  • Problems: Serialize and Deserialize Binary Tree
  • Practice: 2-3 medium problems

Day 23: Trie

  • Trie structure, insert, search, prefix
  • Problems: Implement Trie, Word Search II
  • Practice: 2-3 medium problems

Day 24: Segment Tree

  • Range queries and updates
  • Problems: Range Sum Query, Range Minimum Query
  • Practice: 2-3 medium problems

Day 25: Fenwick Tree

  • Binary Indexed Tree
  • Problems: Range Sum Query - Mutable
  • Practice: 2-3 medium problems

Day 26: BST Advanced

  • BST iterators, recovery
  • Problems: BST Iterator, Recover BST
  • Practice: 2-3 medium/hard problems

Day 27: N-ary Trees

  • N-ary tree traversals
  • Problems: N-ary Tree Level Order Traversal
  • Practice: 2-3 medium problems

Day 28: Review Day

  • Review advanced tree topics
  • Redo challenging problems
  • Update notes

Week 5: Graphs - Basics (Days 29-35)

Day 29: Graph Representation

  • Adjacency list, adjacency matrix
  • BFS, DFS implementations
  • Problems: Number of Islands, Clone Graph
  • Practice: 2-3 medium problems

Day 30: BFS Applications

  • Shortest path in unweighted graph
  • Problems: Rotting Oranges, Word Ladder
  • Practice: 2-3 medium problems

Day 31: DFS Applications

  • Connected components, cycle detection
  • Problems: Number of Connected Components, Graph Valid Tree
  • Practice: 2-3 medium problems

Day 32: Topological Sort

  • DFS-based and BFS-based (Kahn’s)
  • Problems: Course Schedule, Alien Dictionary
  • Practice: 2-3 medium problems

Day 33: Union-Find

  • DSU with path compression and union by rank
  • Problems: Redundant Connection, Number of Provinces
  • Practice: 2-3 medium problems

Day 34: Grid Problems

  • Grid BFS/DFS
  • Problems: Pacific Atlantic Water Flow, Surrounded Regions
  • Practice: 2-3 medium problems

Day 35: Review Day

  • Review graph basics
  • Redo challenging problems
  • Update notes

Week 6: Graphs - Advanced (Days 36-42)

Day 36: Dijkstra’s Algorithm

  • Shortest path with non-negative weights
  • Problems: Network Delay Time, Cheapest Flights Within K Stops
  • Practice: 2-3 medium problems

Day 37: Bellman-Ford

  • Shortest path with negative edges
  • Problems: Negative Weight Cycle Detection
  • Practice: 2-3 medium problems

Day 38: Floyd-Warshall

  • All-pairs shortest path
  • Problems: Find the City With the Smallest Number of Neighbors
  • Practice: 2-3 medium problems

Day 39: Minimum Spanning Tree

  • Kruskal’s and Prim’s algorithms
  • Problems: Min Cost to Connect All Points
  • Practice: 2-3 medium problems

Day 40: Strongly Connected Components

  • Tarjan’s and Kosaraju’s algorithms
  • Problems: Critical Connections in a Network
  • Practice: 2-3 medium/hard problems

Day 41: Max Flow (Optional)

  • Ford-Fulkerson, Edmonds-Karp
  • Problems: Maximum Bipartite Matching
  • Practice: 1-2 hard problems

Day 42: Review Day

  • Review advanced graph topics
  • Redo challenging problems
  • Update notes

Week 7: Dynamic Programming - 1D (Days 43-49)

Day 43: DP Fundamentals

  • Overlapping subproblems, optimal substructure
  • Memoization vs tabulation
  • Problems: Fibonacci, Climbing Stairs
  • Practice: 2-3 easy problems

Day 44: 1D DP

  • House Robber, Maximum Subarray
  • Problems: House Robber, Maximum Product Subarray
  • Practice: 2-3 medium problems

Day 45: DP on Strings

  • LCS, Edit Distance
  • Problems: Longest Common Subsequence, Edit Distance
  • Practice: 2-3 medium problems

Day 46: LIS & Variants

  • Longest Increasing Subsequence
  • Problems: LIS, Russian Doll Envelopes
  • Practice: 2-3 medium problems

Day 47: Knapsack Problems

  • 0/1 Knapsack, Unbounded Knapsack
  • Problems: Partition Equal Subset Sum, Coin Change
  • Practice: 2-3 medium problems

Day 48: Decode Ways & Jump Game

  • DP with conditions
  • Problems: Decode Ways, Jump Game, Jump Game II
  • Practice: 2-3 medium problems

Day 49: Review Day

  • Review 1D DP
  • Redo challenging problems
  • Update notes

Week 8: Dynamic Programming - 2D & Advanced (Days 50-56)

Day 50: Grid DP

  • Unique Paths, Minimum Path Sum
  • Problems: Unique Paths, Minimum Path Sum, Dungeon Game
  • Practice: 2-3 medium problems

Day 51: Interval DP

  • Matrix Chain Multiplication
  • Problems: Burst Balloons, Palindrome Partitioning
  • Practice: 2-3 hard problems

Day 52: Bitmask DP

  • TSP, Assignment Problem
  • Problems: Shortest Path Visiting All Nodes
  • Practice: 2-3 hard problems

Day 53: Digit DP

  • Count numbers with property
  • Problems: Count Numbers With Unique Digits
  • Practice: 2-3 medium problems

Day 54: Tree DP

  • DP on trees
  • Problems: Binary Tree Maximum Path Sum, House Robber III
  • Practice: 2-3 medium problems

Day 55: Stock Problems

  • Buy/sell stock with various constraints
  • Problems: Best Time to Buy and Sell Stock (all variants)
  • Practice: 2-3 medium/hard problems

Day 56: Review Day

  • Review advanced DP
  • Redo challenging problems
  • Update notes

Week 9: Binary Search & Sorting (Days 57-63)

Day 57: Binary Search Basics

  • Standard binary search, variants
  • Problems: Binary Search, Search Insert Position
  • Practice: 2-3 easy problems

Day 58: Binary Search on Answer

  • Binary search on the answer space
  • Problems: Capacity to Ship Packages, Koko Eating Bananas
  • Practice: 2-3 medium problems

Day 59: Binary Search in Rotated Arrays

  • Search in rotated sorted array
  • Problems: Find Minimum in Rotated Sorted Array, Search in Rotated Array
  • Practice: 2-3 medium problems

Day 60: Sorting Algorithms

  • Merge sort, quicksort, heapsort
  • Problems: Sort an Array, Kth Largest Element
  • Practice: 2-3 medium problems

Day 61: Quickselect

  • Partition-based selection
  • Problems: Kth Largest Element, Top K Frequent Elements
  • Practice: 2-3 medium problems

Day 62: Custom Sorting

  • Custom comparators, merge intervals
  • Problems: Merge Intervals, Largest Number
  • Practice: 2-3 medium problems

Day 63: Review Day

  • Review binary search and sorting
  • Redo challenging problems
  • Update notes

Week 10: Heaps, Greedy, & Backtracking (Days 64-70)

Day 64: Heap Fundamentals

  • Min-heap, max-heap, priority queue
  • Problems: Kth Largest Element, Last Stone Weight
  • Practice: 2-3 easy/medium problems

Day 65: Heap Applications

  • Find median, merge k sorted
  • Problems: Find Median from Data Stream, Merge K Sorted Lists
  • Practice: 2-3 medium/hard problems

Day 66: Greedy Basics

  • Greedy choice property
  • Problems: Jump Game, Jump Game II
  • Practice: 2-3 medium problems

Day 67: Greedy Intervals

  • Interval scheduling
  • Problems: Non-overlapping Intervals, Meeting Rooms II
  • Practice: 2-3 medium problems

Day 68: Backtracking Basics

  • Subsets, permutations, combinations
  • Problems: Subsets, Permutations, Combination Sum
  • Practice: 2-3 medium problems

Day 69: Backtracking Advanced

  • N-Queens, Sudoku Solver
  • Problems: N-Queens, Word Search
  • Practice: 2-3 medium/hard problems

Day 70: Review Day

  • Review heaps, greedy, backtracking
  • Redo challenging problems
  • Update notes

Week 11: Math & Bit Manipulation (Days 71-77)

Day 71: Number Theory

  • GCD, LCM, primes, sieve
  • Problems: Count Primes, GCD/LCM
  • Practice: 2-3 medium problems

Day 72: Modular Arithmetic

  • Modular inverse, fast power
  • Problems: Super Pow, Modular operations
  • Practice: 2-3 medium problems

Day 73: Combinatorics

  • Factorials, combinations, permutations
  • Problems: Pascal’s Triangle, Unique Paths (math solution)
  • Practice: 2-3 medium problems

Day 74: Bit Manipulation Basics

  • AND, OR, XOR, shifts
  • Problems: Single Number, Power of Two
  • Practice: 2-3 easy problems

Day 75: Bit Manipulation Advanced

  • Subset enumeration, bitmask tricks
  • Problems: Subsets (bitmask), Counting Bits
  • Practice: 2-3 medium problems

Day 76: Matrix & Geometry

  • Matrix operations, rotation
  • Problems: Rotate Image, Spiral Matrix
  • Practice: 2-3 medium problems

Day 77: Review Day

  • Review math and bit manipulation
  • Redo challenging problems
  • Update notes

Week 12: Advanced Topics (Days 78-84)

Day 78: String Matching

  • KMP, Z Algorithm
  • Problems: Implement strStr(), Repeated Substring Pattern
  • Practice: 2-3 medium problems

Day 79: Sliding Window Advanced

  • Sliding window with hash map
  • Problems: Minimum Window Substring, Substring with Concatenation
  • Practice: 2-3 hard problems

Day 80: Monotonic Stack/Queue Advanced

  • Complex applications
  • Problems: Trapping Rain Water, Maximal Rectangle
  • Practice: 2-3 hard problems

Day 81: Design Problems

  • LRU Cache, LFU Cache
  • Problems: LRU Cache, Design Twitter
  • Practice: 2-3 medium/hard problems

Day 82: System Design Basics (Optional)

  • Scalability concepts
  • Load balancing, caching, database sharding
  • Read: Introduction to system design

Day 83: Mock Interview Practice

  • Do 2-3 mock interviews
  • Focus on communication and problem-solving process
  • Review feedback

Day 84: Review Day

  • Review advanced topics
  • Redo challenging problems
  • Update notes

Week 13: Final Review & Mock Interviews (Days 85-90)

Day 85: Weak Areas Review

  • Identify your weakest 3-4 topics
  • Review concepts and redo problems
  • Focus on understanding, not memorization

Day 86: Pattern Recognition

  • Review all problem patterns
  • Practice identifying which technique to use
  • Solve 5-6 mixed problems

Day 87: Mock Interview 1

  • Full mock interview (45-60 minutes)
  • Focus on communication and time management
  • Review feedback

Day 88: Mock Interview 2

  • Full mock interview (45-60 minutes)
  • Focus on edge cases and testing
  • Review feedback

Day 89: Final Review

  • Review cheat sheets and notes
  • Redo 3-4 problems you found most challenging
  • Prepare questions for interviews

Day 90: Rest & Prepare

  • Light review only
  • Get good sleep
  • Prepare your environment for interviews
  • Review the Interview Checklist (Appendix F)

Daily Schedule Template

TimeActivity
0:00-0:15Review yesterday’s material
0:15-1:00Learn new concept
1:00-2:30Solve problems (2-3 problems)
2:30-2:45Break
2:45-3:30Solve more problems or review
3:30-3:45Update notes and cheat sheets
3:45-4:00Plan tomorrow’s study

Weekly Goals

WeekTopicProblemsKey Concepts
1Arrays & Strings20-25Two pointers, sliding window, prefix sums
2Linked Lists & Stacks20-25Fast/slow pointers, monotonic stack
3Trees - Basics20-25Traversals, BST, LCA
4Trees - Advanced15-20Trie, segment tree, Fenwick tree
5Graphs - Basics20-25BFS, DFS, topological sort, DSU
6Graphs - Advanced15-20Dijkstra, Bellman-Ford, MST
7DP - 1D20-25Memoization, tabulation, knapsack
8DP - 2D15-20Grid DP, interval DP, bitmask DP
9Binary Search & Sorting15-20Binary search variants, quickselect
10Heaps, Greedy, Backtracking20-25Priority queue, greedy choice, backtrack
11Math & Bits15-20Number theory, combinatorics, bit tricks
12Advanced Topics15-20KMP, design problems
13Review & Mocks10-15Mixed problems, mock interviews

Progress Tracking

Use this table to track your progress:

WeekPlannedCompletedNotes
120-25
220-25
320-25
415-20
520-25
615-20
720-25
815-20
915-20
1020-25
1115-20
1215-20
1310-15
Total~300

Consistency is key. Even on days when you don’t feel like studying, do at least 30 minutes. Small daily progress compounds into mastery over 90 days.