- You have basic knowledge of DSA (like arrays, strings, loops, recursion).
- You can code in at least one language: Java / Python / C++.
- You're aiming for coding interviews and online assessments.
- You're ready to commit 2–3 hours/day, 5–6 days/week.
| Month | Focus Area | Key Goals |
|---|---|---|
| Month 1 | DSA Fundamentals + Problem Solving Patterns | Master Arrays, Strings, Hashing, Two Pointers, Sliding Window, Binary Search |
| Month 2 | Recursion & Backtracking | Understand recursion deeply, solve backtracking patterns |
| Month 3 | Trees, Graphs, BFS/DFS | Build a strong foundation on Tree traversal, Graph algorithms |
| Month 4 | Heaps, Tries, Segment Trees, Union-Find | Learn advanced data structures used in system design and optimization |
| Month 5 | DP (Dynamic Programming) | Master classic DP problems and patterns |
| Month 6 | Mock Interviews + Optimization + LC Hards | Practice under time pressure, review mistakes, refine communication |
| Weekday | Time | Activity |
|---|---|---|
| Mon/Wed/Fri | 2 hrs | Learn new topic + Solve 3–5 LC problems |
| Tue/Thu/Sat | 2 hrs | Revise previous topics + Blind 75 / Grind 75 |
| Sun | 3–4 hrs | Mock Interview + Weak area revision |
Here’s a template structure you can use in Notion or Excel:
| Topic | Subtopic | Difficulty | Problems | Completed? (✅) | Notes |
|---|---|---|---|---|---|
| Arrays | Two Sum | Easy | [LeetCode 1] | ✅ | Hash Map usage |
| Arrays | Sliding Window Max | Hard | [LeetCode 239] | ❌ | Use Deque |
| Strings | Longest Without Repeating | Medium | [LeetCode 3] | ✅ | Two Pointers |
| Recursion | Fibonacci | Easy | [LeetCode 509] | ✅ | Memoization |
| ... | ... | ... | ... | ... | ... |
🔗 Google Sheet Template: Make a Copy Here
This is the order FAANG companies expect you to master:
- Arrays & Strings
- Two Pointers
- Sliding Window
- Binary Search
- Hashing / Maps
- Sorting Algorithms
- Greedy Algorithms
- BFS / DFS (Graphs & Trees)
- Dynamic Programming (DP)
- Backtracking
- Trie
- Union-Find / Disjoint Set
- Segment Trees
- Heaps / Priority Queues
- Bit Manipulation
- Monotonic Stack / Queue
- Binary Indexed Trees (Fenwick Trees)
- LRU Cache
- Design Twitter / Autocomplete / Search Suggestions
- Concurrent Data Structures
Sorted by frequency across Google, Amazon, Meta, Microsoft, Apple:
| # | Question | Difficulty | Tags |
|---|---|---|---|
| 1 | Two Sum | Easy | Array, Hash Map |
| 2 | Valid Parentheses | Easy | Stack |
| 3 | Longest Substring Without Repeating Characters | Medium | Two Pointers, Sliding Window |
| 4 | Median of Two Sorted Arrays | Hard | Binary Search |
| 5 | Longest Palindromic Substring | Medium | String, Two Pointers |
| 6 | Container With Most Water | Medium | Two Pointers |
| 7 | 3Sum | Medium | Two Pointers, Sorting |
| 8 | Remove Nth Node From End of List | Medium | Linked List, Two Pointers |
| 9 | Merge Two Sorted Lists | Easy | Linked List |
| 10 | Generate Parentheses | Medium | Backtracking |
| 11 | Merge k Sorted Lists | Hard | Heap, Divide and Conquer |
| 12 | Swap Nodes in Pairs | Medium | Linked List |
| 13 | Reverse Nodes in k-Group | Hard | Linked List |
| 14 | Climbing Stairs | Easy | DP |
| 15 | Coin Change | Medium | DP |
| 16 | Longest Increasing Subsequence | Medium | DP |
| 17 | Unique Paths | Medium | DP |
| 18 | Word Break | Medium | DP, BFS |
| 19 | House Robber | Easy | DP |
| 20 | Decode Ways | Medium | DP |
| 21 | Minimum Path Sum | Medium | DP, Matrix |
| 22 | Edit Distance | Hard | DP |
| 23 | Partition Equal Subset Sum | Medium | DP |
| 24 | Course Schedule | Medium | Graph, BFS |
| 25 | Course Schedule II | Medium | Graph, Topological Sort |
| 26 | Number of Islands | Medium | DFS, BFS |
| 27 | Clone Graph | Medium | BFS, DFS |
| 28 | Pacific Atlantic Water Flow | Medium | BFS, DFS |
| 29 | Alien Dictionary | Hard | Graph, Topological Sort |
| 30 | Word Ladder | Medium | BFS |
| 31 | Word Ladder II | Hard | BFS, DFS |
| 32 | Evaluate Reverse Polish Notation | Medium | Stack |
| 33 | Basic Calculator II | Medium | Stack |
| 34 | Largest Rectangle in Histogram | Hard | Stack |
| 35 | Trapping Rain Water | Hard | Two Pointers, Stack |
| 36 | Product of Array Except Self | Medium | Prefix Sum |
| 37 | Spiral Matrix | Medium | Matrix |
| 38 | Rotate Image | Medium | Matrix |
| 39 | Set Matrix Zeroes | Medium | Matrix |
| 40 | Search a 2D Matrix | Medium | Binary Search |
| 41 | Kth Smallest Element in a Sorted Matrix | Medium | Binary Search, Heap |
| 42 | Meeting Rooms II | Medium | Heap, Greedy |
| 43 | Task Scheduler | Medium | Greedy, Math |
| 44 | Jump Game | Medium | Greedy |
| 45 | Jump Game II | Medium | Greedy |
| 46 | Gas Station | Medium | Greedy |
| 47 | Majority Element | Easy | Hash Map, Boyer-Moore |
| 48 | Find All Anagrams in a String | Medium | Sliding Window |
| 49 | Permutations | Medium | Backtracking |
| 50 | Permutations II | Medium | Backtracking |
| 51 | Combinations | Medium | Backtracking |
| 52 | Combination Sum | Medium | Backtracking |
| 53 | Letter Combinations of a Phone Number | Medium | Backtracking |
| 54 | Subsets | Medium | Backtracking |
| 55 | Subsets II | Medium | Backtracking |
| 56 | Word Search | Medium | Backtracking |
| 57 | Sudoku Solver | Hard | Backtracking |
| 58 | N-Queens | Hard | Backtracking |
| 59 | N-Queens II | Hard | Backtracking |
| 60 | Implement Trie (Prefix Tree) | Medium | Trie |
| 61 | Word Search II | Hard | Trie |
| 62 | Design Add and Search Words Data Structure | Medium | Trie |
| 63 | Find Median from Data Stream | Hard | Heap |
| 64 | Top K Frequent Elements | Medium | Heap |
| 65 | K Closest Points to Origin | Medium | Heap |
| 66 | Merge Intervals | Medium | Sorting |
| 67 | Insert Interval | Medium | Sorting |
| 68 | Non-overlapping Intervals | Medium | Greedy |
| 69 | Meeting Rooms | Easy | Sorting |
| 70 | Minimum Number of Arrows to Burst Balloons | Medium | Greedy |
| 71 | Assign Cookies | Easy | Greedy |
| 72 | Huffman Encoding | Medium | Greedy |
| 73 | Binary Tree Inorder Traversal | Easy | DFS |
| 74 | Validate Binary Search Tree | Medium | DFS |
| 75 | Lowest Common Ancestor of a Binary Tree | Medium | DFS |
| 76 | Construct Binary Tree from Preorder and Inorder Traversal | Medium | DFS |
| 77 | Binary Tree Maximum Path Sum | Hard | DFS |
| 78 | Populating Next Right Pointers in Each Node | Medium | BFS |
| 79 | Populating Next Right Pointers in Each Node II | Medium | BFS |
| 80 | Binary Tree Level Order Traversal | Medium | BFS |
| 81 | Binary Tree Zigzag Level Order Traversal | Medium | BFS |
| 82 | Serialize and Deserialize Binary Tree | Hard | DFS |
| 83 | Recover Binary Search Tree | Hard | DFS |
| 84 | Find Duplicate Subtrees | Medium | DFS |
| 85 | Flip Equivalent Binary Trees | Medium | DFS |
| 86 | Count Complete Tree Nodes | Medium | DFS |
| 87 | Flatten Binary Tree to Linked List | Medium | DFS |
| 88 | Binary Tree Cameras | Hard | DFS |
| 89 | Rotting Oranges | Medium | BFS |
| 90 | Keys and Rooms | Medium | DFS |
| 91 | Redundant Connection | Medium | Union-Find |
| 92 | Number of Provinces | Medium | DFS |
| 93 | Accounts Merge | Medium | DFS |
| 94 | Longest Univalue Path | Medium | DFS |
| 95 | Delete Node in a BST | Medium | BST |
| 96 | Convert Sorted List to Binary Search Tree | Medium | DFS |
| 97 | Binary Tree Pruning | Medium | DFS |
| 98 | Flip Game II | Medium | DFS |
| 99 | The Maze II | Medium | BFS |
| 100 | Cheapest Flights Within K Stops | Medium | BFS, Dijkstra |
📌 Tip: Prioritize Top 50 most frequent LeetCode problems first.
These are essential problem-solving patterns that appear repeatedly in FAANG interviews:
| Pattern | Description | Example Problems |
|---|---|---|
| Two Pointers | Used in arrays and linked lists | Two Sum, Three Sum, Remove Duplicates |
| Sliding Window | Efficient subarray processing | Longest Substring, Max Consecutive Ones |
| Binary Search | For sorted arrays and binary search on answer | Find Peak Element, Koko Eating Bananas |
| Greedy Algorithms | Choose optimal local solution | Jump Game, Meeting Rooms |
| Backtracking | Recursive exploration | Permutations, N-Queens, Sudoku |
| Divide and Conquer | Split and combine solutions | Merge K Sorted Lists, Merge Sort |
| Dynamic Programming (DP) | Optimal substructure + overlapping subproblems | House Robber, Longest Increasing Subsequence |
| BFS / DFS | Tree and graph traversal | Number of Islands, Word Ladder |
| Trie | Prefix-based searches | Word Search II, Implement Trie |
| Heap / Priority Queue | Efficient retrieval of max/min elements | Top K Frequent Elements, Find Median |
| Monotonic Stack / Queue | Maintain increasing/decreasing sequences | Daily Temperatures, Largest Rectangle in Histogram |
| Union-Find (Disjoint Set) | Detect cycles in graphs | Redundant Connection, Number of Provinces |
- NeetCode – Clean, concise explanations for top LC problems
- Tech Dose – Great for DP, Trees, Graphs
- Errichto – Competitive programming style walkthroughs
- Abdul Bari – Theory and Algorithms explained clearly
- Take U Forward – Indian-friendly coding interviews prep
- Blind 75
- Grind 75
- FAANG Tagged Problems
- Top Interview Questions
- LeetCode Premium (if possible) – for company-tagged questions
- Pramp – Free peer-to-peer mock interviews
- Interviewing.io – Real engineer mocks with feedback
- Gainlo.co – Paid FAANG-style mocks
- LeetCode Mock Interview – Simulated environment
- CodeSignal – Company-level practice and assessment
- Use a habit tracker app (e.g., Habitica, Loop Habit Tracker)
- Set weekly goals (e.g., "Complete 20 LC problems")
- Track progress daily using your sheet
- Review every weekend – what worked, what didn’t?
- Join a Discord group or study buddy
- Reward yourself after milestones (e.g., watch a movie, eat out)
- Focus more on problem-solving logic than just code.
- Write clean code with comments during interviews.
- Explain your thought process during mocks.
- Practice writing code without auto-complete.
- Simulate real interview conditions – no hints, timed.