DSA Preparation Sheet
Chapter 1: Arrays
Sub-Topics (Patterns): Two Pointers, Sliding Window, Kadane’s Algorithm, Prefix Sum, Hashing
Pattern 1: Two Pointers
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Two Sum | Two Pointers | Easy | Hashing or Two Pointers | ☐ | LeetCode |
| 2 | 3Sum | Two Pointers | Medium | Sorting + Two Pointers | ☐ | LeetCode |
| 3 | 4Sum | Two Pointers | Medium | Sorting + Two Pointers | ☐ | LeetCode |
| 4 | Container With Most Water | Two Pointers | Medium | Two Pointers | ☐ | LeetCode |
| 5 | Trapping Rain Water | Two Pointers | Hard | Two Pointers | ☐ | LeetCode |
| 6 | Remove Duplicates from Sorted Array | Two Pointers | Easy | Two Pointers | ☐ | LeetCode |
| 7 | Sort Colors | Two Pointers | Medium | Dutch National Flag | ☐ | LeetCode |
| 8 | Merge Sorted Array | Two Pointers | Easy | Two Pointers | ☐ | LeetCode |
| 9 | Longest Substring with At Most K Distinct Characters | Two Pointers | Hard | Sliding Window + Two Pointers | ☐ | LeetCode |
| 10 | Find the Duplicate Number | Two Pointers | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 11 | Move Zeroes | Two Pointers | Easy | Two Pointers | ☐ | LeetCode |
| 12 | Valid Palindrome | Two Pointers | Easy | Two Pointers | ☐ | LeetCode |
| 13 | Partition Labels | Two Pointers | Medium | Greedy + Two Pointers | ☐ | LeetCode |
| 14 | Two Sum II - Input Array Is Sorted | Two Pointers | Medium | Two Pointers | ☐ | LeetCode |
| 15 | Minimum Size Subarray Sum | Two Pointers | Medium | Two Pointers | ☐ | LeetCode |
Pattern 2: Sliding Window
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Longest Substring Without Repeating Characters | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 2 | Minimum Window Substring | Sliding Window | Hard | Sliding Window | ☐ | LeetCode |
| 3 | Longest Repeating Character Replacement | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 4 | Maximum Subarray Sum of Size K | Sliding Window | Easy | Sliding Window | ☐ | LeetCode |
| 5 | Fruit Into Baskets | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 6 | Permutation in String | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 7 | Longest Substring with At Most Two Distinct Characters | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 8 | Minimum Size Subarray Sum | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 9 | Max Consecutive Ones III | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 10 | Sliding Window Maximum | Sliding Window | Hard | Deque + Sliding Window | ☐ | LeetCode |
| 11 | Number of Subarrays with Bounded Maximum | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 12 | Subarrays with K Different Integers | Sliding Window | Hard | Sliding Window | ☐ | LeetCode |
| 13 | Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit | Sliding Window | Hard | Sliding Window + Deque | ☐ | LeetCode |
| 14 | Grumpy Bookstore Owner | Sliding Window | Medium | Sliding Window | ☐ | LeetCode |
| 15 | Frequency of the Most Frequent Element | Sliding Window | Hard | Sliding Window + Sorting | ☐ | LeetCode |
Pattern 3: Kadane’s Algorithm
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Maximum Subarray | Kadane’s | Medium | Kadane’s Algorithm | ☐ | LeetCode |
| 2 | Maximum Product Subarray | Kadane’s | Medium | Modified Kadane’s | ☐ | LeetCode |
| 3 | Maximum Sum Circular Subarray | Kadane’s | Medium | Kadane’s + Corner Case | ☐ | LeetCode |
| 4 | Best Time to Buy and Sell Stock | Kadane’s | Easy | Kadane’s Variation | ☐ | LeetCode |
| 5 | Maximum Absolute Sum of Any Subarray | Kadane’s | Medium | Kadane’s Variation | ☐ | LeetCode |
| 6 | Longest Turbulent Subarray | Kadane’s | Medium | Kadane’s Variation | ☐ | LeetCode |
| 7 | Subarray Product Less Than K | Kadane’s | Medium | Sliding Window + Kadane’s | ☐ | LeetCode |
| 8 | Maximum Subarray Min-Product | Kadane’s | Hard | Kadane’s + Stack | ☐ | LeetCode |
| 9 | Maximum Alternating Subarray Sum | Kadane’s | Medium | Kadane’s Variation | ☐ | LeetCode |
| 10 | Largest Sum of Averages | Kadane’s | Hard | DP + Kadane’s | ☐ | LeetCode |
| 11 | Maximum Length of Subarray With Positive Product | Kadane’s | Medium | Kadane’s Variation | ☐ | LeetCode |
| 12 | Maximum Points You Can Obtain from Cards | Kadane’s | Medium | Sliding Window + Kadane’s | ☐ | LeetCode |
| 13 | Maximum Sum of Two Non-Overlapping Subarrays | Kadane’s | Medium | Kadane’s + Prefix Sum | ☐ | LeetCode |
| 14 | Maximum Subarray Sum After One Operation | Kadane’s | Hard | Kadane’s + DP | ☐ | LeetCode |
| 15 | Find Subarray With Equal Sum | Kadane’s | Medium | Kadane’s Variation | ☐ | LeetCode |
Pattern 4: Prefix Sum
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Subarray Sum Equals K | Prefix Sum | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 2 | Continuous Subarray Sum | Prefix Sum | Medium | Prefix Sum + Modulo | ☐ | LeetCode |
| 3 | Range Sum Query - Immutable | Prefix Sum | Easy | Prefix Sum | ☐ | LeetCode |
| 4 | Find Pivot Index | Prefix Sum | Easy | Prefix Sum | ☐ | LeetCode |
| 5 | Path Sum III | Prefix Sum | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 6 | Subarray Sums Divisible by K | Prefix Sum | Medium | Prefix Sum + Modulo | ☐ | LeetCode |
| 7 | Maximum Size Subarray Sum Equals k | Prefix Sum | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 8 | Number of Ways to Split Array | Prefix Sum | Medium | Prefix Sum | ☐ | LeetCode |
| 9 | Running Sum of 1d Array | Prefix Sum | Easy | Prefix Sum | ☐ | LeetCode |
| 10 | Find the Middle Index in Array | Prefix Sum | Easy | Prefix Sum | ☐ | LeetCode |
| 11 | Maximum Sum of Two Non-Overlapping Subarrays | Prefix Sum | Medium | Prefix Sum + Kadane’s | ☐ | LeetCode |
| 12 | Product of Array Except Self | Prefix Sum | Medium | Prefix Product | ☐ | LeetCode |
| 13 | Count Number of Nice Subarrays | Prefix Sum | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 14 | Binary Subarrays With Sum | Prefix Sum | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 15 | Subarrays with Product Less Than K | Prefix Sum | Medium | Sliding Window + Prefix | ☐ | LeetCode |
Pattern 5: Hashing
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Two Sum | Hashing | Easy | HashMap | ☐ | LeetCode |
| 2 | Longest Consecutive Sequence | Hashing | Medium | HashSet | ☐ | LeetCode |
| 3 | Group Anagrams | Hashing | Medium | HashMap + Sorting | ☐ | LeetCode |
| 4 | Top K Frequent Elements | Hashing | Medium | HashMap + Heap | ☐ | LeetCode |
| 5 | Subarray Sum Equals K | Hashing | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 6 | Valid Anagram | Hashing | Easy | HashMap | ☐ | LeetCode |
| 7 | Find All Anagrams in a String | Hashing | Medium | Sliding Window + HashMap | ☐ | LeetCode |
| 8 | Minimum Window Substring | Hashing | Hard | Sliding Window + HashMap | ☐ | LeetCode |
| 9 | Contains Duplicate | Hashing | Easy | HashSet | ☐ | LeetCode |
| 10 | Longest Substring with At Most K Distinct Characters | Hashing | Hard | Sliding Window + HashMap | ☐ | LeetCode |
| 11 | Find Duplicate Subtrees | Hashing | Medium | HashMap + Serialization | ☐ | LeetCode |
| 12 | Count Number of Nice Subarrays | Hashing | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 13 | Random Pick with Weight | Hashing | Medium | Prefix Sum + HashMap | ☐ | LeetCode |
| 14 | Longest Substring Without Repeating Characters | Hashing | Medium | Sliding Window + HashMap | ☐ | LeetCode |
| 15 | K Closest Points to Origin | Hashing | Medium | Heap + HashMap | ☐ | LeetCode |
Chapter 2: Linked Lists
Sub-Topics (Patterns): Fast & Slow Pointers, Reversal, Merging, Cycle Detection
Pattern 1: Fast & Slow Pointers
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Linked List Cycle | Fast & Slow | Easy | Floyd’s Cycle Detection | ☐ | LeetCode |
| 2 | Linked List Cycle II | Fast & Slow | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 3 | Middle of the Linked List | Fast & Slow | Easy | Fast & Slow Pointers | ☐ | LeetCode |
| 4 | Remove Nth Node From End of List | Fast & Slow | Medium | Fast & Slow Pointers | ☐ | LeetCode |
| 5 | Find the Duplicate Number | Fast & Slow | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 6 | Happy Number | Fast & Slow | Easy | Floyd’s Cycle Detection | ☐ | LeetCode |
| 7 | Palindrome Linked List | Fast & Slow | Medium | Fast & Slow + Reversal | ☐ | LeetCode |
| 8 | Intersection of Two Linked Lists | Fast & Slow | Easy | Two Pointers | ☐ | LeetCode |
| 9 | Detect Cycle in Directed Graph | Fast & Slow | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 10 | Reorder List | Fast & Slow | Medium | Fast & Slow + Reversal | ☐ | LeetCode |
| 11 | Add Two Numbers II | Fast & Slow | Medium | Stack + Fast & Slow | ☐ | LeetCode |
| 12 | Find the Minimum and Maximum Number of Nodes Between Critical Points | Fast & Slow | Medium | Fast & Slow | ☐ | LeetCode |
| 13 | Rotate List | Fast & Slow | Medium | Fast & Slow | ☐ | LeetCode |
| 14 | Odd Even Linked List | Fast & Slow | Medium | Fast & Slow | ☐ | LeetCode |
| 15 | Swap Nodes in Pairs | Fast & Slow | Medium | Fast & Slow | ☐ | LeetCode |
Pattern 2: Reversal
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Reverse Linked List | Reversal | Easy | Iterative Reversal | ☐ | LeetCode |
| 2 | Reverse Linked List II | Reversal | Medium | Iterative Reversal | ☐ | LeetCode |
| 3 | Palindrome Linked List | Reversal | Medium | Fast & Slow + Reversal | ☐ | LeetCode |
| 4 | Reverse Nodes in k-Group | Reversal | Hard | Iterative Reversal | ☐ | LeetCode |
| 5 | Rotate List | Reversal | Medium | Reversal + Fast & Slow | ☐ | LeetCode |
| 6 | Swap Nodes in Pairs | Reversal | Medium | Reversal | ☐ | LeetCode |
| 7 | Reorder List | Reversal | Medium | Fast & Slow + Reversal | ☐ | LeetCode |
| 8 | Reverse Nodes in Even Length Groups | Reversal | Medium | Reversal | ☐ | LeetCode |
| 9 | Add Two Numbers | Reversal | Medium | Reversal + Addition | ☐ | LeetCode |
| 10 | Next Greater Node In Linked List | Reversal | Medium | Stack + Reversal | ☐ | LeetCode |
| 11 | Flatten a Multilevel Doubly Linked List | Reversal | Medium | Reversal + DFS | ☐ | LeetCode |
| 12 | Reverse Nodes in Odd Length Groups | Reversal | Medium | Reversal | ☐ | LeetCode |
| 13 | Merge k Sorted Lists | Reversal | Hard | Reversal + Heap | ☐ | LeetCode |
| 14 | Sort List | Reversal | Medium | Merge Sort + Reversal | ☐ | LeetCode |
| 15 | Add Two Numbers II | Reversal | Medium | Stack + Reversal | ☐ | LeetCode |
Pattern 3: Merging
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Merge Two Sorted Lists | Merging | Easy | Merging | ☐ | LeetCode |
| 2 | Merge k Sorted Lists | Merging | Hard | Heap + Merging | ☐ | LeetCode |
| 3 | Sort List | Merging | Medium | Merge Sort | ☐ | LeetCode |
| 4 | Merge Nodes in Between Zeros | Merging | Medium | Merging | ☐ | LeetCode |
| 5 | Add Two Numbers | Merging | Medium | Merging + Addition | ☐ | LeetCode |
| 6 | Intersection of Two Linked Lists | Merging | Easy | Two Pointers | ☐ | LeetCode |
| 7 | Flatten a Multilevel Doubly Linked List | Merging | Medium | DFS + Merging | ☐ | LeetCode |
| 8 | Merge In Between Linked Lists | Merging | Medium | Merging | ☐ | LeetCode |
| 9 | Reorder List | Merging | Medium | Fast & Slow + Merging | ☐ | LeetCode |
| 10 | Partition List | Merging | Medium | Merging | ☐ | LeetCode |
| 11 | Sort List | Merging | Medium | Merge Sort | ☐ | LeetCode |
| 12 | Odd Even Linked List | Merging | Medium | Merging | ☐ | LeetCode |
| 13 | Merge Nodes in Between Zeros | Merging | Medium | Merging | ☐ | LeetCode |
| 14 | Swap Nodes in Pairs | Merging | Medium | Merging | ☐ | LeetCode |
| 15 | Rotate List | Merging | Medium | Merging + Rotation | ☐ | LeetCode |
Pattern 4: Cycle Detection
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Linked List Cycle | Cycle Detection | Easy | Floyd’s Cycle Detection | ☐ | LeetCode |
| 2 | Linked List Cycle II | Cycle Detection | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 3 | Find the Duplicate Number | Cycle Detection | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 4 | Happy Number | Cycle Detection | Easy | Floyd’s Cycle Detection | ☐ | LeetCode |
| 5 | Circular Array Loop | Cycle Detection | Medium | Floyd’s Cycle Detection | ☐ | LeetCode |
| 6 | Course Schedule | Cycle Detection | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 7 | Course Schedule II | Cycle Detection | Medium | DFS + Topological Sort | ☐ | LeetCode |
| 8 | Graph Valid Tree | Cycle Detection | Medium | Union-Find | ☐ | LeetCode |
| 9 | Find Eventual Safe States | Cycle Detection | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 10 | Minimum Number of Vertices to Reach All Nodes | Cycle Detection | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 11 | Longest Cycle in a Graph | Cycle Detection | Hard | DFS + Cycle Detection | ☐ | LeetCode |
| 12 | Detect Cycles in 2D Grid | Cycle Detection | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 13 | Find the Town Judge | Cycle Detection | Easy | Graph + In-degree | ☐ | LeetCode |
| 14 | Number of Distinct Islands | Cycle Detection | Medium | DFS + Hashing | ☐ | LeetCode |
| 15 | Cycle Length in a Graph | Cycle Detection | Hard | DFS + Cycle Detection | ☐ | LeetCode |
Chapter 3: Trees
Sub-Topics (Patterns): DFS, BFS, Binary Search Trees, Tree Construction
Pattern 1: Depth-First Search (DFS)
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Maximum Depth of Binary Tree | DFS | Easy | DFS | ☐ | LeetCode |
| 2 | Path Sum | DFS | Easy | DFS | ☐ | LeetCode |
| 3 | Path Sum II | DFS | Medium | DFS | ☐ | LeetCode |
| 4 | Path Sum III | DFS | Medium | DFS + Prefix Sum | ☐ | LeetCode |
| 5 | Lowest Common Ancestor of a Binary Tree | DFS | Medium | DFS | ☐ | LeetCode |
| 6 | Binary Tree Maximum Path Sum | DFS | Hard | DFS | ☐ | LeetCode |
| 7 | Validate Binary Search Tree | DFS | Medium | DFS | ☐ | LeetCode |
| 8 | Diameter of Binary Tree | DFS | Easy | DFS | ☐ | LeetCode |
| 9 | Binary Tree Right Side View | DFS | Medium | DFS | ☐ | LeetCode |
| 10 | Sum Root to Leaf Numbers | DFS | Medium | DFS | ☐ | LeetCode |
| 11 | Construct Binary Tree from Preorder and Inorder Traversal | DFS | Medium | DFS | ☐ | LeetCode |
| 12 | Serialize and Deserialize Binary Tree | DFS | Hard | DFS | ☐ | LeetCode |
| 13 | Find Duplicate Subtrees | DFS | Medium | DFS + Hashing | ☐ | LeetCode |
| 14 | Count Good Nodes in Binary Tree | DFS | Medium | DFS | ☐ | LeetCode |
| 15 | Binary Tree Zigzag Level Order Traversal | DFS | Medium | DFS + Reverse | ☐ | LeetCode |
Pattern 2: Breadth-First Search (BFS)
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Binary Tree Level Order Traversal | BFS | Medium | BFS | ☐ | LeetCode |
| 2 | Binary Tree Zigzag Level Order Traversal | BFS | Medium | BFS + Reverse | ☐ | LeetCode |
| 3 | Populating Next Right Pointers in Each Node | BFS | Medium | BFS | ☐ | LeetCode |
| 4 | Binary Tree Right Side View | BFS | Medium | BFS | ☐ | LeetCode |
| 5 | Minimum Depth of Binary Tree | BFS | Easy | BFS | ☐ | LeetCode |
| 6 | Average of Levels in Binary Tree | BFS | Easy | BFS | ☐ | LeetCode |
| 7 | Binary Tree Level Order Traversal II | BFS | Medium | BFS | ☐ | LeetCode |
| 8 | Maximum Level Sum of a Binary Tree | BFS | Medium | BFS | ☐ | LeetCode |
| 9 | Rotting Oranges | BFS | Medium | BFS | ☐ | LeetCode |
| 10 | Shortest Path in Binary Matrix | BFS | Medium | BFS | ☐ | LeetCode |
| 11 | Word Ladder | BFS | Hard | BFS | ☐ | LeetCode |
| 12 | Open the Lock | BFS | Medium | BFS | ☐ | LeetCode |
| 13 | Nearest Exit from Entrance in Maze | BFS | Medium | BFS | ☐ | LeetCode |
| 14 | Snakes and Ladders | BFS | Medium | BFS | ☐ | LeetCode |
| 15 | Minimum Genetic Mutation | BFS | Medium | BFS | ☐ | LeetCode |
Pattern 3: Binary Search Trees (BST)
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Validate Binary Search Tree | BST | Medium | DFS | ☐ | LeetCode |
| 2 | Insert into a Binary Search Tree | BST | Medium | BST Insertion | ☐ | LeetCode |
| 3 | Delete Node in a BST | BST | Medium | BST Deletion | ☐ | LeetCode |
| 4 | Kth Smallest Element in a BST | BST | Medium | Inorder Traversal | ☐ | LeetCode |
| 5 | Search in a Binary Search Tree | BST | Easy | BST Search | ☐ | LeetCode |
| 6 | Lowest Common Ancestor of a BST | BST | Easy | BST Property | ☐ | LeetCode |
| 7 | Recover Binary Search Tree | BST | Hard | Inorder Traversal | ☐ | LeetCode |
| 8 | Convert Sorted Array to BST | BST | Easy | Divide and Conquer | ☐ | LeetCode |
| 9 | Balance a Binary Search Tree | BST | Medium | Inorder + Construction | ☐ | LeetCode |
| 10 | Two Sum IV - Input is a BST | BST | Easy | Inorder + HashSet | ☐ | LeetCode |
| 11 | Increasing Order Search Tree | BST | Easy | Inorder Traversal | ☐ | LeetCode |
| 12 | Kth Largest Element in a BST | BST | Medium | Reverse Inorder | ☐ | LeetCode |
| 13 | All Elements in Two Binary Search Trees | BST | Medium | Inorder + Merge | ☐ | LeetCode |
| 14 | Construct Binary Search Tree from Preorder Traversal | BST | Medium | Preorder + BST | ☐ | LeetCode |
| 15 | Closest Binary Search Tree Value | BST | Easy | BST Search | ☐ | LeetCode |
Pattern 4: Tree Construction
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Construct Binary Tree from Preorder and Inorder Traversal | Tree Construction | Medium | DFS | ☐ | LeetCode |
| 2 | Construct Binary Tree from Inorder and Postorder Traversal | Tree Construction | Medium | DFS | ☐ | LeetCode |
| 3 | Convert Sorted Array to BST | Tree Construction | Easy | Divide and Conquer | ☐ | LeetCode |
| 4 | Construct Binary Search Tree from Preorder Traversal | Tree Construction | Medium | Preorder + BST | ☐ | LeetCode |
| 5 | Serialize and Deserialize Binary Tree | Tree Construction | Hard | DFS | ☐ | LeetCode |
| 6 | Construct Binary Tree from String | Tree Construction | Medium | DFS | ☐ | LeetCode |
| 7 | Construct Quad Tree | Tree Construction | Medium | Divide and Conquer | ☐ | LeetCode |
| 8 | Construct Binary Tree from Preorder and Postorder Traversal | Tree Construction | Medium | DFS | ☐ | LeetCode |
| 9 | Maximum Binary Tree | Tree Construction | Medium | Monotonic Stack | ☐ | LeetCode |
| 10 | Merge Two Binary Trees | Tree Construction | Easy | DFS | ☐ | LeetCode |
| 11 | Construct String from Binary Tree | Tree Construction | Easy | DFS | ☐ | LeetCode |
| 12 | Create Binary Tree From Descriptions | Tree Construction | Medium | HashMap + DFS | ☐ | LeetCode |
| 13 | Balance a Binary Search Tree | Tree Construction | Medium | Inorder + Construction | ☐ | LeetCode |
| 14 | Convert Sorted List to BST | Tree Construction | Medium | Inorder + Divide | ☐ | LeetCode |
| 15 | Construct Maximum Binary Tree II | Tree Construction | Medium | Monotonic Stack | ☐ | LeetCode |
Chapter 4: Graphs
Sub-Topics (Patterns): DFS, BFS, Topological Sort, Union-Find, Shortest Path
Pattern 1: Depth-First Search (DFS)
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Number of Islands | DFS | Medium | DFS | ☐ | LeetCode |
| 2 | Max Area of Island | DFS | Medium | DFS | ☐ | LeetCode |
| 3 | Flood Fill | DFS | Easy | DFS | ☐ | LeetCode |
| 4 | Surrounded Regions | DFS | Medium | DFS | ☐ | LeetCode |
| 5 | Number of Connected Components in an Undirected Graph | DFS | Medium | DFS | ☐ | LeetCode |
| 6 | Course Schedule | DFS | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 7 | Course Schedule II | DFS | Medium | DFS + Topological Sort | ☐ | LeetCode |
| 8 | Find Eventual Safe States | DFS | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 9 | Number of Distinct Islands | DFS | Medium | DFS + Hashing | ☐ | LeetCode |
| 10 | Pacific Atlantic Water Flow | DFS | Medium | DFS | ☐ | LeetCode |
| 11 | Longest Increasing Path in a Matrix | DFS | Hard | DFS + Memoization | ☐ | LeetCode |
| 12 | Detect Cycles in 2D Grid | DFS | Medium | DFS + Cycle Detection | ☐ | LeetCode |
| 13 | Word Search | DFS | Medium | DFS + Backtracking | ☐ | LeetCode |
| 14 | Word Search II | DFS | Hard | DFS + Trie | ☐ | LeetCode |
| 15 | Critical Connections in a Network | DFS | Hard | DFS + Tarjan’s | ☐ | LeetCode |
Pattern 2: Breadth-First Search (BFS)
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Rotting Oranges | BFS | Medium | BFS | ☐ | LeetCode |
| 2 | Shortest Path in Binary Matrix | BFS | Medium | BFS | ☐ | LeetCode |
| 3 | Word Ladder | BFS | Hard | BFS | ☐ | LeetCode |
| 4 | Open the Lock | BFS | Medium | BFS | ☐ | LeetCode |
| 5 | Nearest Exit from Entrance in Maze | BFS | Medium | BFS | ☐ | LeetCode |
| 6 | Snakes and Ladders | BFS | Medium | BFS | ☐ | LeetCode |
| 7 | Minimum Genetic Mutation | BFS | Medium | BFS | ☐ | LeetCode |
| 8 | Shortest Path with Alternating Colors | BFS | Medium | BFS | ☐ | LeetCode |
| 9 | Bus Routes | BFS | Hard | BFS | ☐ | LeetCode |
| 10 | Sliding Puzzle | BFS | Hard | BFS | ☐ | LeetCode |
| 11 | Minimum Jumps to Reach Home | BFS | Medium | BFS | ☐ | LeetCode |
| 12 | Shortest Bridge | BFS | Medium | DFS + BFS | ☐ | LeetCode |
| 13 | 01 Matrix | BFS | Medium | BFS | ☐ | LeetCode |
| 14 | Shortest Path in a Grid with Obstacles Elimination | BFS | Hard | BFS | ☐ | LeetCode |
| 15 | Word Ladder II | BFS | Hard | BFS + Backtracking | ☐ | LeetCode |
Pattern 3: Topological Sort
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Course Schedule | Topological Sort | Medium | DFS + Topological Sort | ☐ | LeetCode |
| 2 | Course Schedule II | Topological Sort | Medium | DFS + Topological Sort | ☐ | LeetCode |
| 3 | Alien Dictionary | Topological Sort | Hard | Topological Sort | ☐ | LeetCode |
| 4 | Minimum Height Trees | Topological Sort | Medium | Topological Sort | ☐ | LeetCode |
| 5 | Sequence Reconstruction | Topological Sort | Medium | Topological Sort | ☐ | LeetCode |
| 6 | Longest Increasing Path in a Matrix | Topological Sort | Hard | DFS + Memoization | ☐ | LeetCode |
| 7 | Parallel Courses | Topological Sort | Medium | Topological Sort | ☐ | LeetCode |
| 8 | Minimum Number of Vertices to Reach All Nodes | Topological Sort | Medium | Topological Sort | ☐ | LeetCode |
| 9 | Sort Items by Groups Respecting Dependencies | Topological Sort | Hard | Topological Sort | ☐ | LeetCode |
| 10 | Find All Possible Recipes from Given Supplies | Topological Sort | Medium | Topological Sort | ☐ | LeetCode |
| 11 | Build a Matrix With Conditions | Topological Sort | Hard | Topological Sort | ☐ | LeetCode |
| 12 | Parallel Courses III | Topological Sort | Hard | Topological Sort | ☐ | LeetCode |
| 13 | Longest Cycle in a Graph | Topological Sort | Hard | DFS + Cycle Detection | ☐ | LeetCode |
| 14 | Course Schedule IV | Topological Sort | Medium | Topological Sort + DFS | ☐ | LeetCode |
| 15 | Check if Move is Legal | Topological Sort | Medium | Graph + DFS | ☐ | LeetCode |
Pattern 4: Union-Find
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Number of Connected Components in an Undirected Graph | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 2 | Graph Valid Tree | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 3 | Redundant Connection | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 4 | Accounts Merge | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 5 | Most Stones Removed with Same Row or Column | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 6 | Satisfiability of Equality Equations | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 7 | Smallest String With Swaps | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 8 | Number of Provinces | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 9 | Minimum Score of a Path Between Two Cities | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 10 | Lexicographically Smallest Equivalent String | Union-Find | Medium | Union-Find | ☐ | LeetCode |
| 11 | Similar String Groups | Union-Find | Hard | Union-Find | ☐ | LeetCode |
| 12 | Remove Max Number of Edges to Keep Graph Fully Traversable | Union-Find | Hard | Union-Find | ☐ | LeetCode |
| 13 | Connecting Cities With Minimum Cost | Union-Find | Medium | Kruskal’s Algorithm | ☐ | LeetCode |
| 14 | Optimize Water Distribution in a Village | Union-Find | Hard | Kruskal’s Algorithm | ☐ | LeetCode |
| 15 | Redundant Connection II | Union-Find | Hard | Union-Find | ☐ | LeetCode |
Pattern 5: Shortest Path
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Network Delay Time | Shortest Path | Medium | Dijkstra’s | ☐ | LeetCode |
| 2 | Cheapest Flights Within K Stops | Shortest Path | Medium | Bellman-Ford | ☐ | LeetCode |
| 3 | Path With Minimum Effort | Shortest Path | Medium | Dijkstra’s | ☐ | LeetCode |
| 4 | Find the City With the Smallest Number of Neighbors at a Threshold Distance | Shortest Path | Medium | Floyd-Warshall | ☐ | LeetCode |
| 5 | Shortest Path in Binary Matrix | Shortest Path | Medium | BFS | ☐ | LeetCode |
| 6 | Shortest Path with Alternating Colors | Shortest Path | Medium | BFS | ☐ | LeetCode |
| 7 | Path with Maximum Probability | Shortest Path | Medium | Dijkstra’s | ☐ | LeetCode |
| 8 | Shortest Path in a Grid with Obstacles Elimination | Shortest Path | Hard | BFS | ☐ | LeetCode |
| 9 | Minimum Cost to Make at Least One Valid Path in a Grid | Shortest Path | Hard | Dijkstra’s | ☐ | LeetCode |
| 10 | Shortest Path to Get All Keys | Shortest Path | Hard | BFS | ☐ | LeetCode |
| 11 | Reconstruct Itinerary | Shortest Path | Hard | DFS + Eulerian Path | ☐ | LeetCode |
| 12 | Second Minimum Time to Reach Destination | Shortest Path | Hard | Dijkstra’s | ☐ | LeetCode |
| 13 | Minimum Cost to Reach Destination in Time | Shortest Path | Hard | Dijkstra’s | ☐ | LeetCode |
| 14 | Number of Ways to Arrive at Destination | Shortest Path | Medium | Dijkstra’s | ☐ | LeetCode |
| 15 | Shortest Bridge | Shortest Path | Medium | DFS + BFS | ☐ | LeetCode |
Chapter 5: Dynamic Programming
Sub-Topics (Patterns): 1D DP, 2D DP, Subsequence DP, Knapsack, Matrix DP
Pattern 1: 1D DP
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Climbing Stairs | 1D DP | Easy | DP | ☐ | LeetCode |
| 2 | Fibonacci Number | 1D DP | Easy | DP | ☐ | LeetCode |
| 3 | Min Cost Climbing Stairs | 1D DP | Easy | DP | ☐ | LeetCode |
| 4 | House Robber | 1D DP | Medium | DP | ☐ | LeetCode |
| 5 | House Robber II | 1D DP | Medium | DP | ☐ | LeetCode |
| 6 | Paint House | 1D DP | Medium | DP | ☐ | LeetCode |
| 7 | Decode Ways | 1D DP | Medium | DP | ☐ | LeetCode |
| 8 | Coin Change | 1D DP | Medium | DP | ☐ | LeetCode |
| 9 | Coin Change 2 | 1D DP | Medium | DP | ☐ | LeetCode |
| 10 | Partition Equal Subset Sum | 1D DP | Medium | DP | ☐ | LeetCode |
| 11 | Arithmetic Slices | 1D DP | Medium | DP | ☐ | LeetCode |
| 12 | Number of Longest Increasing Subsequence | 1D DP | Medium | DP | ☐ | LeetCode |
| 13 | Delete and Earn | 1D DP | Medium | DP | ☐ | LeetCode |
| 14 | Paint Fence | 1D DP | Medium | DP | ☐ | LeetCode |
| 15 | Maximum Product of Splitted Binary Tree | 1D DP | Medium | DP | ☐ | LeetCode |
Pattern 2: 2D DP
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Unique Paths | 2D DP | Medium | DP | ☐ | LeetCode |
| 2 | Unique Paths II | 2D DP | Medium | DP | ☐ | LeetCode |
| 3 | Longest Common Subsequence | 2D DP | Medium | DP | ☐ | LeetCode |
| 4 | Edit Distance | 2D DP | Hard | DP | ☐ | LeetCode |
| 5 | Minimum Path Sum | 2D DP | Medium | DP | ☐ | LeetCode |
| 6 | Dungeon Game | 2D DP | Hard | DP | ☐ | LeetCode |
| 7 | Longest Palindromic Subsequence | 2D DP | Medium | DP | ☐ | LeetCode |
| 8 | Regular Expression Matching | 2D DP | Hard | DP | ☐ | LeetCode |
| 9 | Wildcard Matching | 2D DP | Hard | DP | ☐ | LeetCode |
| 10 | Interleaving String | 2D DP | Hard | DP | ☐ | LeetCode |
| 11 | Distinct Subsequences | 2D DP | Hard | DP | ☐ | LeetCode |
| 12 | Longest Valid Parentheses | 2D DP | Hard | DP | ☐ | LeetCode |
| 13 | Maximum Subarray Sum Circular | 2D DP | Medium | Kadane’s + DP | ☐ | LeetCode |
| 14 | Count Square Submatrices with All Ones | 2D DP | Medium | DP | ☐ | LeetCode |
| 15 | Minimum Falling Path Sum | 2D DP | Medium | DP | ☐ | LeetCode |
Pattern 3: Subsequence DP
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Longest Increasing Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 2 | Longest Common Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 3 | Longest Palindromic Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 4 | Number of Longest Increasing Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 5 | Distinct Subsequences | Subsequence DP | Hard | DP | ☐ | LeetCode |
| 6 | Longest Arithmetic Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 7 | Longest Arithmetic Subsequence of Given Difference | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 8 | Maximum Length of Pair Chain | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 9 | Longest String Chain | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 10 | Longest Continuous Increasing Subsequence | Subsequence DP | Easy | DP | ☐ | LeetCode |
| 11 | Longest Turbulent Subarray | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 12 | Longest Subsequence Repeated k Times | Subsequence DP | Hard | DP | ☐ | LeetCode |
| 13 | Longest Ideal Subsequence | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 14 | Longest Common Subsequence Between Sorted Arrays | Subsequence DP | Medium | DP | ☐ | LeetCode |
| 15 | Longest Palindromic Substring | Subsequence DP | Medium | DP | ☐ | LeetCode |
Pattern 4: Knapsack
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | 0/1 Knapsack Problem | Knapsack | Medium | DP | ☐ | LeetCode |
| 2 | Partition Equal Subset Sum | Knapsack | Medium | DP | ☐ | LeetCode |
| 3 | Target Sum | Knapsack | Medium | DP | ☐ | LeetCode |
| 4 | Coin Change | Knapsack | Medium | DP | ☐ | LeetCode |
| 5 | Coin Change 2 | Knapsack | Medium | DP | ☐ | LeetCode |
| 6 | Combination Sum IV | Knapsack | Medium | DP | ☐ | LeetCode |
| 7 | Ones and Zeroes | Knapsack | Medium | DP | ☐ | LeetCode |
| 8 | Last Stone Weight II | Knapsack | Medium | DP | ☐ | LeetCode |
| 9 | Profitable Schemes | Knapsack | Hard | DP | ☐ | LeetCode |
| 10 | Number of Ways to Form a Target String Given a Dictionary | Knapsack | Hard | DP | ☐ | LeetCode |
| 11 | Partition to K Equal Sum Subsets | Knapsack | Medium | DP | ☐ | LeetCode |
| 12 | Knapsack with Duplicate Items | Knapsack | Medium | DP | ☐ | GeeksforGeeks |
| 13 | Minimum Cost For Tickets | Knapsack | Medium | DP | ☐ | LeetCode |
| 14 | Number of Ways to Stay in the Same Place After Some Steps | Knapsack | Hard | DP | ☐ | LeetCode |
| 15 | Count Subsets with Sum K | Knapsack | Medium | DP | ☐ | GeeksforGeeks |
Pattern 5: Matrix DP
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Unique Paths | Matrix DP | Medium | DP | ☐ | LeetCode |
| 2 | Unique Paths II | Matrix DP | Medium | DP | ☐ | LeetCode |
| 3 | Minimum Path Sum | Matrix DP | Medium | DP | ☐ | LeetCode |
| 4 | Dungeon Game | Matrix DP | Hard | DP | ☐ | LeetCode |
| 5 | Count Square Submatrices with All Ones | Matrix DP | Medium | DP | ☐ | LeetCode |
| 6 | Minimum Falling Path Sum | Matrix DP | Medium | DP | ☐ | LeetCode |
| 7 | Triangle | Matrix DP | Medium | DP | ☐ | LeetCode |
| 8 | Maximal Square | Matrix DP | Medium | DP | ☐ | LeetCode |
| 9 | Longest Line of Consecutive One in Matrix | Matrix DP | Medium | DP | ☐ | LeetCode |
| 10 | Number of Ways to Paint N × 3 Grid | Matrix DP | Hard | DP | ☐ | LeetCode |
| 11 | Maximum Alternating Subsequence Sum | Matrix DP | Medium | DP | ☐ | LeetCode |
| 12 | Longest Common Subpath | Matrix DP | Hard | DP | ☐ | LeetCode |
| 13 | Minimum Cost to Cut a Stick | Matrix DP | Hard | DP | ☐ | LeetCode |
| 14 | Burst Balloons | Matrix DP | Hard | DP | ☐ | LeetCode |
| 15 | Stone Game | Matrix DP | Medium | DP | ☐ | LeetCode |
Chapter 6: Heaps
Sub-Topics (Patterns): Min/Max Heap, Priority Queue, Kth Element
Pattern 1: Min/Max Heap
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Kth Largest Element in an Array | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 2 | Top K Frequent Elements | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 3 | Merge k Sorted Lists | Min/Max Heap | Hard | Min Heap | ☐ | LeetCode |
| 4 | Find Median from Data Stream | Min/Max Heap | Hard | Two Heaps | ☐ | LeetCode |
| 5 | K Closest Points to Origin | Min/Max Heap | Medium | Max Heap | ☐ | LeetCode |
| 6 | Task Scheduler | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 7 | Reorganize String | Min/Max Heap | Medium | Max Heap | ☐ | LeetCode |
| 8 | Kth Largest Element in a Stream | Min/Max Heap | Easy | Min Heap | ☐ | LeetCode |
| 9 | Top K Frequent Words | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 10 | Find K Pairs with Smallest Sums | Min/Max Heap | Hard | Min Heap | ☐ | LeetCode |
| 11 | Minimum Cost to Connect Sticks | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 12 | Furthest Building You Can Reach | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 13 | Kth Smallest Element in a Sorted Matrix | Min/Max Heap | Medium | Min Heap | ☐ | LeetCode |
| 14 | Smallest Range Covering Elements from K Lists | Min/Max Heap | Hard | Min Heap | ☐ | LeetCode |
| 15 | Reorder Data in Log Files | Min/Max Heap | Medium | Heap + Sorting | ☐ | LeetCode |
Pattern 2: Priority Queue
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Merge k Sorted Lists | Priority Queue | Hard | Priority Queue | ☐ | LeetCode |
| 2 | Task Scheduler | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 3 | Find Median from Data Stream | Priority Queue | Hard | Two Priority Queues | ☐ | LeetCode |
| 4 | Kth Largest Element in a Stream | Priority Queue | Easy | Priority Queue | ☐ | LeetCode |
| 5 | K Closest Points to Origin | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 6 | Top K Frequent Elements | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 7 | Reorganize String | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 8 | Minimum Cost to Connect Sticks | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 9 | Furthest Building You Can Reach | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 10 | Kth Smallest Element in a Sorted Matrix | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 11 | Find K Pairs with Smallest Sums | Priority Queue | Hard | Priority Queue | ☐ | LeetCode |
| 12 | Smallest Range Covering Elements from K Lists | Priority Queue | Hard | Priority Queue | ☐ | LeetCode |
| 13 | Sliding Window Maximum | Priority Queue | Hard | Deque + Priority Queue | ☐ | LeetCode |
| 14 | Top K Frequent Words | Priority Queue | Medium | Priority Queue | ☐ | LeetCode |
| 15 | Minimum Interval to Include Each Query | Priority Queue | Hard | Priority Queue | ☐ | LeetCode |
Pattern 3: Kth Element
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Kth Largest Element in an Array | Kth Element | Medium | Min Heap | ☐ | LeetCode |
| 2 | Kth Smallest Element in a Sorted Matrix | Kth Element | Medium | Min Heap | ☐ | LeetCode |
| 3 | Kth Largest Element in a Stream | Kth Element | Easy | Min Heap | ☐ | LeetCode |
| 4 | Top K Frequent Elements | Kth Element | Medium | Min Heap + HashMap | ☐ | LeetCode |
| 5 | Top K Frequent Words | Kth Element | Medium | Min Heap + HashMap | ☐ | LeetCode |
| 6 | Kth Smallest Element in a BST | Kth Element | Medium | Inorder Traversal | ☐ | LeetCode |
| 7 | K Closest Points to Origin | Kth Element | Medium | Max Heap | ☐ | LeetCode |
| 8 | Kth Smallest Number in Multiplication Table | Kth Element | Hard | Binary Search | ☐ | LeetCode |
| 9 | Find K Pairs with Smallest Sums | Kth Element | Hard | Min Heap | ☐ | LeetCode |
| 10 | Kth Smallest Prime Fraction | Kth Element | Hard | Min Heap | ☐ | LeetCode |
| 11 | Kth Largest Sum in a Binary Tree | Kth Element | Medium | Max Heap | ☐ | LeetCode |
| 12 | Kth Ancestor of a Tree Node | Kth Element | Hard | Binary Lifting | ☐ | LeetCode |
| 13 | Kth Missing Positive Number | Kth Element | Easy | Linear Search | ☐ | LeetCode |
| 14 | Kth Largest Element in an Array (QuickSelect) | Kth Element | Medium | QuickSelect | ☐ | LeetCode |
| 15 | Kth Smallest Instructions | Kth Element | Hard | DP + Combinatorics | ☐ | LeetCode |
Chapter 7: Strings
Sub-Topics (Patterns): String Matching, Palindromes, Anagrams, Pattern Matching
Pattern 1: String Matching
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Longest Substring Without Repeating Characters | String Matching | Medium | Sliding Window | ☐ | LeetCode |
| 2 | Minimum Window Substring | String Matching | Hard | Sliding Window | ☐ | LeetCode |
| 3 | Find All Anagrams in a String | String Matching | Medium | Sliding Window | ☐ | LeetCode |
| 4 | Permutation in String | String Matching | Medium | Sliding Window | ☐ | LeetCode |
| 5 | Longest Repeating Character Replacement | String Matching | Medium | Sliding Window | ☐ | LeetCode |
| 6 | Valid Anagram | String Matching | Easy | HashMap | ☐ | LeetCode |
| 7 | Group Anagrams | String Matching | Medium | HashMap + Sorting | ☐ | LeetCode |
| 8 | Longest Substring with At Most K Distinct Characters | String Matching | Hard | Sliding Window | ☐ | LeetCode |
| 9 | String Compression | String Matching | Medium | Two Pointers | ☐ | LeetCode |
| 10 | Longest Common Prefix | String Matching | Easy | Vertical Scanning | ☐ | LeetCode |
| 11 | Valid Palindrome | String Matching | Easy | Two Pointers | ☐ | LeetCode |
| 12 | Valid Palindrome II | String Matching | Easy | Two Pointers | ☐ | LeetCode |
| 13 | Minimum Length of String After Deleting Similar Ends | String Matching | Medium | Two Pointers | ☐ | LeetCode |
| 14 | Longest Substring with At Most Two Distinct Characters | String Matching | Medium | Sliding Window | ☐ | LeetCode |
| 15 | Shortest Way to Form String | String Matching | Medium | Greedy | ☐ | LeetCode |
Pattern 2: Palindromes
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Longest Palindromic Substring | Palindromes | Medium | Expand Around Center | ☐ | LeetCode |
| 2 | Palindromic Substrings | Palindromes | Medium | Expand Around Center | ☐ | LeetCode |
| 3 | Valid Palindrome | Palindromes | Easy | Two Pointers | ☐ | LeetCode |
| 4 | Valid Palindrome II | Palindromes | Easy | Two Pointers | ☐ | LeetCode |
| 5 | Longest Palindromic Subsequence | Palindromes | Medium | DP | ☐ | LeetCode |
| 6 | Break a Palindrome | Palindromes | Medium | Greedy | ☐ | LeetCode |
| 7 | Shortest Palindrome | Palindromes | Hard | KMP Algorithm | ☐ | LeetCode |
| 8 | Palindrome Partitioning | Palindromes | Medium | Backtracking | ☐ | LeetCode |
| 9 | Palindrome Partitioning II | Palindromes | Hard | DP | ☐ | LeetCode |
| 10 | Count Different Palindromic Subsequences | Palindromes | Hard | DP | ☐ | LeetCode |
| 11 | Longest Chunked Palindrome Decomposition | Palindromes | Hard | Two Pointers | ☐ | LeetCode |
| 12 | Remove Palindromic Subsequences | Palindromes | Easy | Two Pointers | ☐ | LeetCode |
| 13 | Maximum Number of Non-Overlapping Palindrome Substrings | Palindromes | Hard | DP | ☐ | LeetCode |
| 14 | Valid Palindrome IV | Palindromes | Medium | Two Pointers | ☐ | LeetCode |
| 15 | Palindrome Pairs | Palindromes | Hard | HashMap + Trie | ☐ | LeetCode |
Pattern 3: Anagrams
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Valid Anagram | Anagrams | Easy | HashMap | ☐ | LeetCode |
| 2 | Group Anagrams | Anagrams | Medium | HashMap + Sorting | ☐ | LeetCode |
| 3 | Find All Anagrams in a String | Anagrams | Medium | Sliding Window | ☐ | LeetCode |
| 4 | Permutation in String | Anagrams | Medium | Sliding Window | ☐ | LeetCode |
| 5 | Minimum Number of Steps to Make Two Strings Anagram | Anagrams | Medium | HashMap | ☐ | LeetCode |
| 6 | Minimum Number of Steps to Make Two Strings Anagram II | Anagrams | Medium | HashMap | ☐ | LeetCode |
| 7 | Find Resultant Array After Removing Anagrams | Anagrams | Medium | HashMap + Sorting | ☐ | LeetCode |
| 8 | Check if Two String Arrays are Equivalent | Anagrams | Easy | HashMap | ☐ | LeetCode |
| 9 | String Matching in an Array | Anagrams | Easy | HashSet | ☐ | LeetCode |
| 10 | Find Anagrams | Anagrams | Medium | Sliding Window | ☐ | LeetCode |
| 11 | Minimum Window Substring | Anagrams | Hard | Sliding Window | ☐ | LeetCode |
| 12 | Group Shifted Strings | Anagrams | Medium | HashMap | ☐ | LeetCode |
| 13 | Isomorphic Strings | Anagrams | Easy | HashMap | ☐ | LeetCode |
| 14 | Word Pattern | Anagrams | Easy | HashMap | ☐ | LeetCode |
| 15 | Longest Substring with At Least K Repeating Characters | Anagrams | Medium | Sliding Window | ☐ | LeetCode |
Pattern 4: Pattern Matching
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Regular Expression Matching | Pattern Matching | Hard | DP | ☐ | LeetCode |
| 2 | Wildcard Matching | Pattern Matching | Hard | DP | ☐ | LeetCode |
| 3 | Word Pattern | Pattern Matching | Easy | HashMap | ☐ | LeetCode |
| 4 | Isomorphic Strings | Pattern Matching | Easy | HashMap | ☐ | LeetCode |
| 5 | Longest Common Prefix | Pattern Matching | Easy | Vertical Scanning | ☐ | LeetCode |
| 6 | Shortest Palindrome | Pattern Matching | Hard | KMP Algorithm | ☐ | LeetCode |
| 7 | Repeated Substring Pattern | Pattern Matching | Easy | KMP Algorithm | ☐ | LeetCode |
| 8 | Implement strStr() | Pattern Matching | Easy | KMP Algorithm | ☐ | LeetCode |
| 9 | Minimum Window Substring | Pattern Matching | Hard | Sliding Window | ☐ | LeetCode |
| 10 | Find All Anagrams in a String | Pattern Matching | Medium | Sliding Window | ☐ | LeetCode |
| 11 | Word Break | Pattern Matching | Medium | DP | ☐ | LeetCode |
| 12 | Word Break II | Pattern Matching | Hard | DP + Backtracking | ☐ | LeetCode |
| 13 | Longest Valid Parentheses | Pattern Matching | Hard | Stack | ☐ | LeetCode |
| 14 | Minimum Add to Make Parentheses Valid | Pattern Matching | Medium | Stack | ☐ | LeetCode |
| 15 | Valid Parenthesis String | Pattern Matching | Medium | Stack | ☐ | LeetCode |
Chapter 8: Backtracking
Sub-Topics (Patterns): Permutations, Combinations, Subsets, N-Queens
Pattern 1: Permutations
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Permutations | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 2 | Permutations II | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 3 | Next Permutation | Permutations | Medium | Iterative | ☐ | LeetCode |
| 4 | Permutation Sequence | Permutations | Hard | Math + Backtracking | ☐ | LeetCode |
| 5 | Permutation in String | Permutations | Medium | Sliding Window | ☐ | LeetCode |
| 6 | Letter Combinations of a Phone Number | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 7 | Generate Parentheses | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 8 | Palindrome Partitioning | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 9 | Combination Sum | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 10 | Combination Sum II | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 11 | Combination Sum III | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 12 | Combination Sum IV | Permutations | Medium | DP | ☐ | LeetCode |
| 13 | Permutations of a String | Permutations | Medium | Backtracking | ☐ | GeeksforGeeks |
| 14 | Letter Case Permutation | Permutations | Medium | Backtracking | ☐ | LeetCode |
| 15 | All Possible Full Binary Trees | Permutations | Medium | Backtracking | ☐ | LeetCode |
Pattern 2: Combinations
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Combinations | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 2 | Combination Sum | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 3 | Combination Sum II | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 4 | Combination Sum III | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 5 | Combination Sum IV | Combinations | Medium | DP | ☐ | LeetCode |
| 6 | Letter Combinations of a Phone Number | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 7 | Subsets | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 8 | Subsets II | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 9 | Factor Combinations | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 10 | Generate Parentheses | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 11 | Combination Iterator | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 12 | Combinations of a String | Combinations | Medium | Backtracking | ☐ | GeeksforGeeks |
| 13 | All Possible Full Binary Trees | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 14 | Palindrome Partitioning | Combinations | Medium | Backtracking | ☐ | LeetCode |
| 15 | K-Sum Subsets | Combinations | Hard | Backtracking | ☐ | LeetCode |
Pattern 3: Subsets
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Subsets | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 2 | Subsets II | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 3 | Combination Sum | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 4 | Combination Sum II | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 5 | Combination Sum III | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 6 | Partition Equal Subset Sum | Subsets | Medium | DP | ☐ | LeetCode |
| 7 | Subset Sum Problem | Subsets | Medium | DP | ☐ | GeeksforGeeks |
| 8 | Generalized Abbreviation | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 9 | Letter Case Permutation | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 10 | Partition to K Equal Sum Subsets | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 11 | Count Number of Maximum Bitwise-OR Subsets | Subsets | Medium | Backtracking | ☐ | LeetCode |
| 12 | Subarrays with K Different Integers | Subsets | Hard | Sliding Window | ☐ | LeetCode |
| 13 | All Subsets of a String | Subsets | Medium | Backtracking | ☐ | GeeksforGeeks |
| 14 | Maximum Subarray Sum with One Deletion | Subsets | Medium | DP | ☐ | LeetCode |
| 15 | Count Number of Nice Subarrays | Subsets | Medium | Sliding Window | ☐ | LeetCode |
Pattern 4: N-Queens
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | N-Queens | N-Queens | Hard | Backtracking | ☐ | LeetCode |
| 2 | N-Queens II | N-Queens | Hard | Backtracking | ☐ | LeetCode |
| 3 | Sudoku Solver | N-Queens | Hard | Backtracking | ☐ | LeetCode |
| 4 | Valid Sudoku | N-Queens | Medium | HashSet | ☐ | LeetCode |
| 5 | Word Search | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 6 | Word Search II | N-Queens | Hard | Backtracking + Trie | ☐ | LeetCode |
| 7 | Generate Parentheses | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 8 | Palindrome Partitioning | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 9 | Combination Sum | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 10 | Letter Combinations of a Phone Number | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 11 | Restore IP Addresses | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 12 | Subsets | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 13 | Permutations | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 14 | Combination Sum II | N-Queens | Medium | Backtracking | ☐ | LeetCode |
| 15 | Solve the Sudoku | N-Queens | Hard | Backtracking | ☐ | GeeksforGeeks |
Chapter 9: Greedy
Sub-Topics (Patterns): Interval Scheduling, Minimum Operations, Greedy Choice
Pattern 1: Interval Scheduling
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Non-overlapping Intervals | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 2 | Meeting Rooms | Interval Scheduling | Easy | Greedy | ☐ | LeetCode |
| 3 | Meeting Rooms II | Interval Scheduling | Medium | Greedy + Min Heap | ☐ | LeetCode |
| 4 | Minimum Number of Arrows to Burst Balloons | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 5 | Maximum Length of Pair Chain | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 6 | Interval List Intersections | Interval Scheduling | Medium | Two Pointers | ☐ | LeetCode |
| 7 | Merge Intervals | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 8 | Insert Interval | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 9 | Employee Free Time | Interval Scheduling | Hard | Greedy + Min Heap | ☐ | LeetCode |
| 10 | Partition Labels | Interval Scheduling | Medium | Greedy | ☐ | LeetCode |
| 11 | Minimum Number of Taps to Open to Water a Garden | Interval Scheduling | Hard | Greedy | ☐ | LeetCode |
| 12 | Minimum Interval to Include Each Query | Interval Scheduling | Hard | Greedy + Min Heap | ☐ | LeetCode |
| 13 | Maximum Number of Events That Can Be Attended | Interval Scheduling | Medium | Greedy + Min Heap | ☐ | LeetCode |
| 14 | Maximum Number of Events That Can Be Attended II | Interval Scheduling | Hard | DP + Greedy | ☐ | LeetCode |
| 15 | Data Stream as Disjoint Intervals | Interval Scheduling | Hard | Greedy + TreeSet | ☐ | LeetCode |
Pattern 2: Minimum Operations
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Minimum Operations to Reduce X to Zero | Minimum Operations | Medium | Sliding Window | ☐ | LeetCode |
| 2 | Minimum Moves to Equal Array Elements | Minimum Operations | Easy | Greedy | ☐ | LeetCode |
| 3 | Minimum Moves to Equal Array Elements II | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 4 | Minimum Operations to Make Array Equal | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 5 | Minimum Number of Steps to Make Two Strings Anagram | Minimum Operations | Medium | HashMap | ☐ | LeetCode |
| 6 | Minimum Deletions to Make Character Frequencies Unique | Minimum Operations | Medium | Greedy + HashMap | ☐ | LeetCode |
| 7 | Minimum Increment to Make Array Unique | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 8 | Minimum Operations to Make a Subsequence | Minimum Operations | Hard | Greedy + Binary Search | ☐ | LeetCode |
| 9 | Minimum Number of Operations to Move All Balls to Each Box | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 10 | Minimum Deletion Cost to Avoid Repeating Letters | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 11 | Minimum Operations to Make the Array Increasing | Minimum Operations | Easy | Greedy | ☐ | LeetCode |
| 12 | Minimum Changes to Make Alternating Binary String | Minimum Operations | Easy | Greedy | ☐ | LeetCode |
| 13 | Minimum Operations to Make Array Alternating | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
| 14 | Minimum Cost to Make Array Equal | Minimum Operations | Hard | Greedy + Binary Search | ☐ | LeetCode |
| 15 | Minimum Operations to Remove Adjacent Equal Elements | Minimum Operations | Medium | Greedy | ☐ | LeetCode |
Pattern 3: Greedy Choice
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Jump Game | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 2 | Jump Game II | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 3 | Gas Station | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 4 | Candy | Greedy Choice | Hard | Greedy | ☐ | LeetCode |
| 5 | Partition Labels | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 6 | Queue Reconstruction by Height | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 7 | Reorganize String | Greedy Choice | Medium | Greedy + Heap | ☐ | LeetCode |
| 8 | Task Scheduler | Greedy Choice | Medium | Greedy + Heap | ☐ | LeetCode |
| 9 | Minimum Number of Taps to Open to Water a Garden | Greedy Choice | Hard | Greedy | ☐ | LeetCode |
| 10 | Maximum Subarray | Greedy Choice | Medium | Kadane’s | ☐ | LeetCode |
| 11 | Best Time to Buy and Sell Stock | Greedy Choice | Easy | Greedy | ☐ | LeetCode |
| 12 | Best Time to Buy and Sell Stock II | Greedy Choice | Medium | Greedy | ☐ | LeetCode |
| 13 | Lemonade Change | Greedy Choice | Easy | Greedy | ☐ | LeetCode |
| 14 | Minimum Cost to Connect Sticks | Greedy Choice | Medium | Greedy + Heap | ☐ | LeetCode |
| 15 | Maximum Units on a Truck | Greedy Choice | Easy | Greedy | ☐ | LeetCode |
Chapter 10: Binary Search
Sub-Topics (Patterns): Standard Binary Search, Search in Rotated Array, Find Peak/Valley
Pattern 1: Standard Binary Search
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Binary Search | Standard Binary Search | Easy | Binary Search | ☐ | LeetCode |
| 2 | Search Insert Position | Standard Binary Search | Easy | Binary Search | ☐ | LeetCode |
| 3 | First Bad Version | Standard Binary Search | Easy | Binary Search | ☐ | LeetCode |
| 4 | Find Peak Element | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 5 | Search a 2D Matrix | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 6 | Search a 2D Matrix II | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 7 | Find First and Last Position of Element in Sorted Array | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 8 | Kth Smallest Element in a Sorted Matrix | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 9 | Sqrt(x) | Standard Binary Search | Easy | Binary Search | ☐ | LeetCode |
| 10 | Find Minimum in Rotated Sorted Array | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 11 | Capacity To Ship Packages Within D Days | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 12 | Koko Eating Bananas | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 13 | Find the Smallest Divisor Given a Threshold | Standard Binary Search | Medium | Binary Search | ☐ | LeetCode |
| 14 | Split Array Largest Sum | Standard Binary Search | Hard | Binary Search | ☐ | LeetCode |
| 15 | Median of Two Sorted Arrays | Standard Binary Search | Hard | Binary Search | ☐ | LeetCode |
Pattern 2: Search in Rotated Array
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Search in Rotated Sorted Array | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 2 | Search in Rotated Sorted Array II | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 3 | Find Minimum in Rotated Sorted Array | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 4 | Find Minimum in Rotated Sorted Array II | Search in Rotated Array | Hard | Binary Search | ☐ | LeetCode |
| 5 | Search a 2D Matrix | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 6 | Find First and Last Position of Element in Sorted Array | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 7 | Single Element in a Sorted Array | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 8 | Find Peak Element | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 9 | Search in a Sorted Array of Unknown Size | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 10 | Find K Closest Elements | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 11 | Peak Index in a Mountain Array | Search in Rotated Array | Easy | Binary Search | ☐ | LeetCode |
| 12 | Find the Duplicate Number | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 13 | Find Minimum in Rotated Sorted Array with Duplicates | Search in Rotated Array | Hard | Binary Search | ☐ | LeetCode |
| 14 | Search for a Range | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
| 15 | Time Based Key-Value Store | Search in Rotated Array | Medium | Binary Search | ☐ | LeetCode |
Pattern 3: Find Peak/Valley
| Index | Problem | Pattern | Difficulty | Algorithm | Solve | Question Link |
|---|
| 1 | Find Peak Element | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 2 | Peak Index in a Mountain Array | Find Peak/Valley | Easy | Binary Search | ☐ | LeetCode |
| 3 | Find Minimum in Rotated Sorted Array | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 4 | Find Minimum in Rotated Sorted Array II | Find Peak/Valley | Hard | Binary Search | ☐ | LeetCode |
| 5 | Single Element in a Sorted Array | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 6 | Find K Closest Elements | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 7 | Search in Rotated Sorted Array | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 8 | Find the Duplicate Number | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 9 | Longest Mountain in Array | Find Peak/Valley | Medium | Two Pointers | ☐ | LeetCode |
| 10 | Valid Mountain Array | Find Peak/Valley | Easy | Two Pointers | ☐ | LeetCode |
| 11 | Kth Smallest Number in Multiplication Table | Find Peak/Valley | Hard | Binary Search | ☐ | LeetCode |
| 12 | Find in Mountain Array | Find Peak/Valley | Hard | Binary Search | ☐ | LeetCode |
| 13 | Capacity To Ship Packages Within D Days | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 14 | Koko Eating Bananas | Find Peak/Valley | Medium | Binary Search | ☐ | LeetCode |
| 15 | Split Array Largest Sum | Find Peak/Valley | Hard | Binary Search | ☐ | LeetCode |
How to Use This Sheet
- Schedule: Follow the 3-month plan outlined in the previous response, allocating ~2-3 weeks per chapter. Start with easier problems (Easy/Medium) in Month 1, progress to Medium/Hard in Month 2, and focus on Hard + revision in Month 3.
- Problem Selection: The 15 problems per pattern are curated to cover most variations of the pattern, ensuring comprehensive preparation. Solve them in order, starting with easier ones to build confidence.
- Tracking: Use the "Solve" column to mark completed problems. Revisit unsolved or challenging problems weekly.
- Resources: Pair problem-solving with conceptual learning (e.g., NeetCode videos, GeeksforGeeks articles, or "Cracking the Coding Interview").
- Mock Interviews: In Month 3, practice these problems under timed conditions (20-25 minutes for Medium, 30-40 minutes for Hard) to simulate MNC interview scenarios.
Additional Notes
- Total Problems: ~600 problems across all chapters and patterns, covering most DSA concepts asked in MNC interviews.
- Company-Specific Prep: For companies like Google, Amazon, or Microsoft, check LeetCode’s company-tagged questions or Glassdoor for recent patterns.
- Time Management: Aim to solve 3-5 problems daily, balancing learning and practice. Use weekends for contests (e.g., LeetCode Weekly) and revision.
If you need a specific chapter expanded, a weekly schedule, or additional problems for a particular pattern, let me know!