Study Plan
Three roadmaps adapted around the DSA topics in this site. Pick the one that matches your timeline, then use the must-do list to focus your practice.
1 Week (Last-Minute)
You don't have time to master everything — prioritize pattern recognition and communication.
| Day | Focus |
|---|---|
| 1–2 | Read the method notes (Interview Process, Communication, Big-O) + drill the must-do list to recognize problem shapes |
| 3 | Arrays, Strings, Binary Search, Hashmap |
| 4 | Linked List, Graph, BFS/DFS, Trees |
| 5 | Divide & Conquer, Sliding Window, Two Pointers, Heap/Stack |
| 6 | Backtracking + Dynamic Programming (the two highest-leverage topics) |
| 7 | Mock interviews (timed, no hints) + Behavioral STAR stories |
2 Weeks (Refresher)
You know the basics but need to sharpen pattern recognition and speed.
Week 1 — Core foundations: recursion, hashmap patterns, tree traversals, BFS/DFS, two pointers, prefix sum. One topic per day, 3–5 problems each.
Week 2 — Advanced patterns: sliding window, heap, binary search on answer, divide and conquer, DP (top-down then bottom-up), backtracking. Weekends: timed mock interviews covering the full stack.
6 Weeks (Beginner)
You're building fluency from scratch. Go slow enough to internalize each pattern.
- Allocate roughly one topic per day from the DSA Roadmap in this site.
- Before reading any explanation or solution, attempt the problem yourself for at least 20 minutes. Struggle is the learning mechanism.
- Cover bonus topics (Trie, Union-Find, Topological Sort, Difference Array) in the final week.
- Reserve the last weekend entirely for mock interviews.
Must-Do Problems (Curated)
A focused list by family. Solve these and you will have seen the most common interview patterns.
Array / String
- LC 1 — Two Sum
- LC 121 — Best Time to Buy and Sell Stock
- LC 238 — Product of Array Except Self
- LC 53 — Maximum Subarray
- LC 49 — Group Anagrams
- LC 76 — Minimum Window Substring
- LC 3 — Longest Substring Without Repeating Characters
Linked List
- LC 206 — Reverse Linked List
- LC 21 — Merge Two Sorted Lists
- LC 141 — Linked List Cycle
- LC 25 — Reverse Nodes in k-Group
- LC 146 — LRU Cache
Tree
- LC 104 — Maximum Depth of Binary Tree
- LC 102 — Binary Tree Level Order Traversal
- LC 98 — Validate Binary Search Tree
- LC 236 — Lowest Common Ancestor of a Binary Tree
- LC 124 — Binary Tree Maximum Path Sum
Graph / BFS / DFS
- LC 200 — Number of Islands
- LC 207 — Course Schedule
- LC 994 — Rotting Oranges
- LC 127 — Word Ladder
- LC 133 — Clone Graph
Heap / Sort
- LC 215 — Kth Largest Element in an Array
- LC 23 — Merge k Sorted Lists
- LC 56 — Merge Intervals
Hash / Sliding Window
- LC 424 — Longest Repeating Character Replacement
- LC 560 — Subarray Sum Equals K
Binary Search
- LC 33 — Search in Rotated Sorted Array
- LC 34 — Find First and Last Position of Element in Sorted Array
- LC 875 — Koko Eating Bananas
Dynamic Programming
- LC 70 — Climbing Stairs
- LC 198 — House Robber
- LC 322 — Coin Change
- LC 300 — Longest Increasing Subsequence
- LC 72 — Edit Distance
- LC 152 — Maximum Product Subarray
- LC 416 — Partition Equal Subset Sum
Backtracking
- LC 46 — Permutations
- LC 78 — Subsets
- LC 22 — Generate Parentheses
Key study principle: struggle with the problem and plan your own approach before reading any solution — that is how patterns stick.
Further reading: EngineerPro — Coding DSA Interview at Big Tech (https://engineerpro-team.github.io/coding-book/)