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
| Time | Activity |
|---|---|
| 0:00-0:15 | Review yesterday’s material |
| 0:15-1:00 | Learn new concept |
| 1:00-2:30 | Solve problems (2-3 problems) |
| 2:30-2:45 | Break |
| 2:45-3:30 | Solve more problems or review |
| 3:30-3:45 | Update notes and cheat sheets |
| 3:45-4:00 | Plan tomorrow’s study |
Weekly Goals
| Week | Topic | Problems | Key Concepts |
|---|---|---|---|
| 1 | Arrays & Strings | 20-25 | Two pointers, sliding window, prefix sums |
| 2 | Linked Lists & Stacks | 20-25 | Fast/slow pointers, monotonic stack |
| 3 | Trees - Basics | 20-25 | Traversals, BST, LCA |
| 4 | Trees - Advanced | 15-20 | Trie, segment tree, Fenwick tree |
| 5 | Graphs - Basics | 20-25 | BFS, DFS, topological sort, DSU |
| 6 | Graphs - Advanced | 15-20 | Dijkstra, Bellman-Ford, MST |
| 7 | DP - 1D | 20-25 | Memoization, tabulation, knapsack |
| 8 | DP - 2D | 15-20 | Grid DP, interval DP, bitmask DP |
| 9 | Binary Search & Sorting | 15-20 | Binary search variants, quickselect |
| 10 | Heaps, Greedy, Backtracking | 20-25 | Priority queue, greedy choice, backtrack |
| 11 | Math & Bits | 15-20 | Number theory, combinatorics, bit tricks |
| 12 | Advanced Topics | 15-20 | KMP, design problems |
| 13 | Review & Mocks | 10-15 | Mixed problems, mock interviews |
Progress Tracking
Use this table to track your progress:
| Week | Planned | Completed | Notes |
|---|---|---|---|
| 1 | 20-25 | ||
| 2 | 20-25 | ||
| 3 | 20-25 | ||
| 4 | 15-20 | ||
| 5 | 20-25 | ||
| 6 | 15-20 | ||
| 7 | 20-25 | ||
| 8 | 15-20 | ||
| 9 | 15-20 | ||
| 10 | 20-25 | ||
| 11 | 15-20 | ||
| 12 | 15-20 | ||
| 13 | 10-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.