DSAStudy Plan

Study Plan

A 12-week plan built around the principle: learn deeply, not broadly. It is better to deeply understand 150 problems than to superficially graze 500. Each week introduces a topic, applies it to problems, and reviews the previous week through spaced repetition. By week 12 you will be ready for FAANG-level interviews.

Weeks 1–2: Arrays, Strings & Hashing

Foundations. Almost every other topic builds on array manipulation and HashMap usage.

Day

Topic

Problems to Solve

1

Arrays: two pointers, prefix sums

Two Sum, Best Time to Buy/Sell Stock, Max Subarray

2

Sliding window (fixed size)

Max Sum Subarray of Size K, Average of Subarrays

3

Sliding window (variable size)

Longest Substring Without Repeating, Fruit Into Baskets

4

HashMap / HashSet

Contains Duplicate, Group Anagrams, Valid Anagram

5

Prefix sums + difference arrays

Range Sum Query, Subarray Sum Equals K

6–7

Review + new strings

Valid Palindrome, Longest Common Prefix, Roman to Integer

8

String matching: KMP / Z-algo

Implement strStr(), Repeated Substring Pattern

9

2D arrays, matrix traversal

Spiral Matrix, Rotate Image, Set Matrix Zeroes

10

Sorting-based problems

3Sum, Sort Colors, Merge Intervals

11

Binary search fundamentals

Binary Search, Search in Rotated Array, Find Peak

12–14

Week review + spaced repetition

Re-solve Day 1–5 problems from scratch

Weeks 3–4: Linked Lists, Stacks & Queues

Day

Topic

Problems to Solve

15

Singly linked list: basics

Reverse Linked List, Middle of List, Merge Two Sorted

16

Linked list: fast & slow pointers

Linked List Cycle, Cycle Start, Kth Node From End

17

Doubly linked list + LRU Cache

LRU Cache (design from scratch)

18

Stack: basic applications

Valid Parentheses, Min Stack, Evaluate RPN

19

Monotonic stack

Daily Temperatures, Next Greater Element, Largest Rectangle

20

Queue and deque

Sliding Window Maximum, Design Circular Queue

21–22

Stack + queue design problems

Queue via Stacks, Stack via Queues, Min Stack

23

In-place list reversal

Reverse Nodes in K-Group, Reorder List, Palindrome List

24–28

Review weeks 1–4

Pick 2 random problems per day from previous topics

Weeks 5–6: Trees, Heaps & Trie

Day

Topic

Problems to Solve

29

Binary tree DFS

Max Depth, Invert Tree, Same Tree, Symmetric Tree

30

Tree paths and sums

Path Sum, Path Sum II, Sum Root to Leaf Numbers

31

Tree BFS (level order)

Level Order, Zigzag Level Order, Right Side View

32

BST properties

Validate BST, Kth Smallest in BST, BST Iterator

33

LCA and ancestors

LCA of BST, LCA of Binary Tree, All Nodes Distance K

34

Binary tree construction

Build Tree (pre+inorder), Serialize/Deserialize

35

Heap basics + top K

Kth Largest Element, K Most Frequent Elements, Top K

36

Heap: median stream, merge K

Find Median from Data Stream, Merge K Sorted Lists

37

Trie

Implement Trie, Word Search II, Replace Words

38–42

Review weeks 1–6

One problem per prior topic daily

Weeks 7–8: Graphs, Sorting & Searching

Day

Topic

Problems to Solve

43

Graph representations + BFS

Number of Islands, Rotting Oranges, 01 Matrix

44

DFS on graphs

Clone Graph, Path Exists, Surrounded Regions

45

Topological sort

Course Schedule I & II, Alien Dictionary

46

Union-Find

Number of Connected Components, Redundant Connection

47

Weighted graphs: Dijkstra

Network Delay Time, Path With Min Effort

48

Bellman-Ford + Floyd-Warshall

Cheapest Flights K Stops, Find City With Fewest

49

MST: Kruskal + Prim

Min Cost to Connect All Points, Optimize Water

50

Advanced graph: bipartite, SCC

Is Graph Bipartite, Critical Connections

51

Sorting algorithms (implement)

Code merge sort, quick sort, counting sort from scratch

52–56

Binary search advanced

Search in 2D Matrix II, Find K Closest, Koko Eating

Weeks 9–10: Greedy, Backtracking & Divide and Conquer

Day

Topic

Problems to Solve

57

Greedy fundamentals

Jump Game, Jump Game II, Gas Station

58

Greedy: intervals

Non-overlapping Intervals, Meeting Rooms II

59

Backtracking: subsets

Subsets, Subsets II, Combination Sum

60

Backtracking: permutations

Permutations, Permutations II, Next Permutation

61

Backtracking: N-Queens, Sudoku

N-Queens, Sudoku Solver, Word Search

62

Backtracking pruning techniques

Palindrome Partitioning, Restore IP Addresses

63

Divide and conquer

Merge Sort (implement), Quick Sort pivot strategies

64

D&C on arrays

Median of Two Sorted Arrays, Kth Largest in Two Arrays

65–70

Review full backtracking set

Re-solve all backtracking problems without notes

Weeks 11–12: Dynamic Programming + Review + Mock Interviews

Day

Topic

Problems to Solve

71

1D DP

Climbing Stairs, House Robber, Decode Ways

72

2D DP (grid)

Unique Paths, Min Path Sum, Dungeon Game

73

Sequence DP

Longest Increasing Subsequence, Russian Dolls

74

String DP

Edit Distance, Longest Common Subsequence, Interleaving

75

Knapsack variants

Partition Equal Subset, Target Sum, Coin Change

76

DP on trees

House Robber III, Diameter of Binary Tree

77

Interval DP

Burst Balloons, Matrix Chain, Strange Printer

78

Bitmask DP

Assign Work, Shortest Path Visiting All Nodes

79–80

Full mock interviews

3 problems, 45 min each; simulate real conditions

81–84

Weak area focus

Double down on your 3 weakest topics

Daily Routine
  • 20 min: warm up with one Easy problem from a previous topic

  • 40–60 min: new problem(s) for the current day's topic

  • 15 min: review yesterday's solutions — could you make it cleaner?

  • 10 min: update your pattern journal (what pattern did each problem use?)

Spaced Repetition System

Use a simple tagging system for every problem you solve:

Text
Tag system:
  [1] — solved on first try with no help
  [2] — needed a hint or minor struggle
  [3] — had to look at the solution

Review schedule:
  [1] problems → revisit in 7 days
  [2] problems → revisit in 3 days
  [3] problems → revisit next day

If you tag [1] again on the revisit → move to 2-week cycle.
If you tag [3] again → it goes back on the daily queue.
When to Move On
  • You can solve the problem clean without looking at previous solutions

  • You can explain the time and space complexity instantly

  • You can identify the pattern and explain why it applies

  • You can name at least 2 variant problems that use the same pattern

Warning
Do not skip weeks. The plan is cumulative — graph algorithms assume you know BFS/DFS well, which assumes you understood tree traversal, which assumes you are comfortable with recursion. Rushing ahead creates gaps that will hurt you in interviews on "simple" follow-up questions.
Recommended Resources

Resource

Best for

Free?

LeetCode

Problem practice with test cases

Partial (free has most problems)

NeetCode.io

Structured roadmap + video explanations

Free

AlgoExpert

Video walkthroughs, structured progression

Paid

CLRS (book)

Deep theoretical understanding

Paid

Grokking the Coding Interview

Pattern-based learning

Paid

Competitive Programmer's Handbook

Advanced topics, free PDF online

Free

Back to Back SWE (YouTube)

Clear visual explanations of hard problems

Free

Tech Interview Handbook

Behavioral + technical combined

Free (GitHub)

Tip
The biggest mistake candidates make is grinding hundreds of problems without retention. Slow down, solve fewer problems, and truly understand each one. Depth beats breadth in interviews because interviewers ask follow-ups and variants — which you can only handle if you understand the core idea, not just the solution code.