Microsoft — DSA Questions
553 problems confirmed in interviews | 1509 total tagged
Problem titles link to LeetCode. Interview mention counts are derived from our analysis of public discussion posts.
Priority List (confirmed in interviews)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | LRU Cache | Medium | HashMap / Design | 15x | LC | ||
| 2 | Number of Islands | Medium | Graph | 14x | LC | ||
| 3 | Meeting Rooms II | Medium | Intervals | 12x | LC | ||
| 4 | Search in Rotated Sorted Array | Medium | Binary Search | 11x | LC | ||
| 5 | Course Schedule II | Medium | Graph | 11x | LC | ||
| 6 | Valid Parentheses | Easy | Stack / Queue | 10x | LC | ||
| 7 | Longest Substring Without Repeating Characters | Medium | Tree | 9x | LC | ||
| 8 | Best Time to Buy and Sell Stock | Easy | Other | 9x | LC | ||
| 9 | Two Sum | Easy | Array / Two Pointers | 8x | LC | ||
| 10 | Container With Most Water | Medium | Array / Two Pointers | 8x | LC | ||
| 11 | 3Sum | Medium | Array, Two Pointers, Sorting | 8x | LC | ||
| 12 | Group Anagrams | Medium | Array, Hash Table, String | 8x | LC | ||
| 13 | Binary Tree Zigzag Level Order Traversal | Medium | Tree | 8x | LC | ||
| 14 | Construct Binary Tree from Preorder and Inorder Travers | Medium | Tree | 8x | LC | ||
| 15 | Reverse Words in a String | Medium | Two Pointers, String | 8x | LC | ||
| 16 | Lowest Common Ancestor of a Binary Tree | Medium | Tree | 8x | LC | ||
| 17 | Merge k Sorted Lists | Hard | Heap / PQ | 7x | LC | ||
| 18 | Trapping Rain Water | Hard | Array / Two Pointers | 7x | LC | ||
| 19 | Spiral Matrix | Medium | Matrix / Grid | 7x | LC | ||
| 20 | Jump Game | Medium | DP | 7x | LC | ||
| 21 | Merge Intervals | Medium | Array, Sorting | 7x | LC | ||
| 22 | Word Ladder | Hard | Other | 7x | LC | ||
| 23 | Reverse Linked List | Easy | Linked List | 7x | LC | ||
| 24 | Course Schedule | Medium | Graph | 7x | LC | ||
| 25 | Rotting Oranges | Medium | Graph | 7x | LC | ||
| 26 | Redundant Connection | Medium | Other | 7x | LC | ||
| 27 | Add Two Numbers | Medium | Linked List | 6x | LC | ||
| 28 | Generate Parentheses | Medium | String, Dynamic Programming, Backtracking | 6x | LC | ||
| 29 | Reverse Nodes in k-Group | Hard | Other | 6x | LC | ||
| 30 | Decode Ways | Medium | DP | 6x | LC | ||
| 31 | Validate Binary Search Tree | Medium | Tree, Depth-First Search, Binary Search Tree | 6x | LC | ||
| 32 | Binary Tree Level Order Traversal | Medium | Tree | 6x | LC | ||
| 33 | Longest Consecutive Sequence | Medium | Array, Hash Table, Union-Find | 6x | LC | ||
| 34 | Gas Station | Medium | Array, Greedy | 6x | LC | ||
| 35 | Critical Connections in a Network | Hard | Graph | 6x | LC | ||
| 36 | Median of Two Sorted Arrays | Hard | Other | 5x | LC | ||
| 37 | Jump Game II | Medium | DP | 5x | LC | ||
| 38 | Maximum Subarray | Medium | Array / Two Pointers | 5x | LC | ||
| 39 | Climbing Stairs | Easy | DP | 5x | LC | ||
| 40 | Sort Colors | Medium | Array, Two Pointers, Sorting | 5x | LC | ||
| 41 | Minimum Window Substring | Hard | Tree | 5x | LC | ||
| 42 | Word Search | Medium | Backtracking | 5x | LC | ||
| 43 | Binary Tree Maximum Path Sum | Hard | Tree | 5x | LC | ||
| 44 | Copy List with Random Pointer | Medium | Hash Table, Linked List | 5x | LC | ||
| 45 | Word Break | Medium | DP | 5x | LC | ||
| 46 | Kth Largest Element in an Array | Medium | Heap / PQ | 5x | LC | ||
| 47 | Kth Smallest Element in a BST | Medium | Tree | 5x | LC | ||
| 48 | Product of Array Except Self | Medium | Array / Two Pointers | 5x | LC | ||
| 49 | Find the Duplicate Number | Medium | Array, Two Pointers, Binary Search | 5x | LC | ||
| 50 | Serialize and Deserialize Binary Tree | Hard | String, Tree, Depth-First Search | 5x | LC | ||
| 51 | Diameter of Binary Tree | Easy | Tree | 5x | LC | ||
| 52 | Network Delay Time | Medium | Depth-First Search, Breadth-First Search, Graph Theory | 5x | LC | ||
| 53 | Reorganize String | Medium | Heap / PQ | 5x | LC | ||
| 54 | Cheapest Flights Within K Stops | Medium | Graph | 5x | LC | ||
| 55 | Pacific Atlantic Water Flow | Medium | Other | 5x | LC | ||
| 56 | Longest Palindromic Substring | Medium | Tree | 4x | LC | ||
| 57 | Remove Duplicates from Sorted Array | Easy | Array / Two Pointers | 4x | LC | ||
| 58 | Find First and Last Position of Element in Sorted Array | Medium | Binary Search | 4x | LC | ||
| 59 | Combination Sum | Medium | Backtracking | 4x | LC | ||
| 60 | Largest Rectangle in Histogram | Hard | Stack / Queue | 4x | LC | ||
| 61 | Maximal Rectangle | Hard | Array, Dynamic Programming, Stack | 4x | LC | ||
| 62 | Populating Next Right Pointers in Each Node | Medium | Linked List, Tree, Depth-First Search | 4x | LC | ||
| 63 | Min Stack | Medium | Stack / Queue | 4x | LC | ||
| 64 | Intersection of Two Linked Lists | Easy | Linked List | 4x | LC | ||
| 65 | Binary Tree Right Side View | Medium | Tree | 4x | LC | ||
| 66 | Implement Trie (Prefix Tree) | Medium | Tree | 4x | LC | ||
| 67 | Basic Calculator II | Medium | Stack / Queue | 4x | LC | ||
| 68 | Sliding Window Maximum | Hard | Array, Queue, Sliding Window | 4x | LC | ||
| 69 | Alien Dictionary | Hard | Graph | 4x | LC | ||
| 70 | Longest Increasing Subsequence | Medium | DP | 4x | LC | ||
| 71 | Coin Change | Medium | DP | 4x | LC | ||
| 72 | Kth Smallest Element in a Sorted Matrix | Medium | Matrix / Grid | 4x | LC | ||
| 73 | Partition Equal Subset Sum | Medium | Backtracking | 4x | LC | ||
| 74 | Next Greater Element II | Medium | Other | 4x | LC | ||
| 75 | Subarray Sum Equals K | Medium | Array / Two Pointers | 4x | LC | ||
| 76 | Task Scheduler | Medium | Heap / PQ | 4x | LC | ||
| 77 | Max Area of Island | Medium | Graph | 4x | LC | ||
| 78 | Car Fleet | Medium | Other | 4x | LC | ||
| 79 | Binary Tree Cameras | Hard | Tree | 4x | LC | ||
| 80 | Longest Happy String | Medium | Other | 4x | LC |
Graph (47 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Number of Islands | Medium | 14x | LC | |||
| 2 | Course Schedule II | Medium | 11x | LC | |||
| 3 | Course Schedule | Medium | 7x | LC | |||
| 4 | Rotting Oranges | Medium | 7x | LC | |||
| 5 | Critical Connections in a Network | Hard | 6x | LC | |||
| 6 | Network Delay Time | Medium | Depth-First Search, Breadth-First Search, Graph Theory | 5x | LC | ||
| 7 | Cheapest Flights Within K Stops | Medium | 5x | LC | |||
| 8 | Alien Dictionary | Hard | 4x | LC | |||
| 9 | Max Area of Island | Medium | 4x | LC | |||
| 10 | Bus Routes | Hard | 4x | LC | |||
| 11 | Graph Valid Tree | Medium | Depth-First Search, Breadth-First Search, Union-Find | 3x | LC | ||
| 12 | Reconstruct Itinerary | Hard | Array, String, Depth-First Search | 3x | LC | ||
| 13 | Is Graph Bipartite? | Medium | Depth-First Search, Breadth-First Search, Union-Find | 2x | LC | ||
| 14 | Maximal Network Rank | Medium | 2x | LC | |||
| 15 | Maximum Subgraph Score in a Tree | Hard | Array, Dynamic Programming, Tree | 2x | LC | ||
| 16 | Lexicographically Smallest Negated Permutation That Sum | ? | 2x | LC | |||
| 17 | Lexicographically Smallest Palindromic Permutation Grea | ? | 2x | LC | |||
| 18 | Lexicographically Smallest Permutation Greater Than Tar | Medium | Hash Table, String, Greedy | 2x | LC | ||
| 19 | Clone Graph | Medium | 1x | LC | |||
| 20 | Evaluate Division | Medium | 1x | LC | |||
| 21 | Reorder Routes to Make All Paths Lead to the City Zero | Medium | 1x | LC | |||
| 22 | Number of Operations to Make Network Connected | Medium | 1x | LC | |||
| 23 | Count Unreachable Pairs of Nodes in an Undirected Graph | Medium | 1x | LC | |||
| 24 | Count Routes to Climb a Rectangular Grid | Hard | 1x | LC | |||
| 25 | Shortest Cycle in a Graph | Hard | Breadth-First Search, Graph Theory | 1x | LC | ||
| 26 | Lexicographically Smallest String After Deleting Duplic | ? | 1x | LC | |||
| 27 | Largest Color Value In A Directed Graph | ? | 1x | LC | |||
| 28 | Number Of Connected Components In An Undirected Graph | ? | 1x | LC | |||
| 29 | Lexicographically Smallest Equivalent String | ? | 1x | LC | |||
| 30 | Island Perimeter | Easy | LC | ||||
| 31 | Number of Distinct Islands | Medium | LC | ||||
| 32 | Verifying an Alien Dictionary | Easy | LC | ||||
| 33 | Number of Closed Islands | Medium | LC | ||||
| 34 | The k-th Lexicographical String of All Happy Strings of | Medium | String, Backtracking | LC | |||
| 35 | Find Center of Star Graph | Easy | LC | ||||
| 36 | Find if Path Exists in Graph | Easy | Depth-First Search, Breadth-First Search, Union-Find | LC | |||
| 37 | Making A Large Island | Hard | LC | ||||
| 38 | Lexicographical Numbers | Medium | LC | ||||
| 39 | K-th Smallest in Lexicographical Order | Hard | LC | ||||
| 40 | Course Schedule IV | Medium | LC | ||||
| 41 | Construct the Lexicographically Largest Valid Sequence | Medium | LC | ||||
| 42 | Minimum Cost Walk in Weighted Graph | Hard | LC | ||||
| 43 | Find the Lexicographically Largest String From the Box | Medium | Two Pointers, String, Enumeration | LC | |||
| 44 | Lexicographically Minimum String After Removing Stars | Medium | Hash Table, String, Stack | LC | |||
| 45 | Last Substring in Lexicographical Order | Hard | Two Pointers, String | LC | |||
| 46 | Implement Router | Medium | LC | ||||
| 47 | Distance to a Cycle in Undirected Graph | Hard | LC |
DP (31 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Jump Game | Medium | 7x | LC | |||
| 2 | Decode Ways | Medium | 6x | LC | |||
| 3 | Jump Game II | Medium | 5x | LC | |||
| 4 | Climbing Stairs | Easy | 5x | LC | |||
| 5 | Word Break | Medium | 5x | LC | |||
| 6 | Longest Increasing Subsequence | Medium | 4x | LC | |||
| 7 | Coin Change | Medium | 4x | LC | |||
| 8 | Regular Expression Matching | Hard | String, Dynamic Programming, Recursion | 3x | LC | ||
| 9 | Maximum Profit in Job Scheduling | Hard | 3x | LC | |||
| 10 | Wildcard Matching | Hard | 2x | LC | |||
| 11 | Unique Paths | Medium | 2x | LC | |||
| 12 | Minimum Path Sum | Medium | 2x | LC | |||
| 13 | Edit Distance | Medium | 2x | LC | |||
| 14 | House Robber | Medium | 2x | LC | |||
| 15 | Longest Increasing Path in a Matrix | Hard | 2x | LC | |||
| 16 | House Robber III | Medium | Dynamic Programming, Tree, Depth-First Search | 2x | LC | ||
| 17 | Total Score Of Dungeon Runs | ? | 2x | LC | |||
| 18 | Unique Paths II | Medium | 1x | LC | |||
| 19 | Jump Game III | Medium | 1x | LC | |||
| 20 | Cherry Pickup II | Hard | 1x | LC | |||
| 21 | Minimum Path Cost In A Grid | ? | 1x | LC | |||
| 22 | Word Break II | Hard | Array, Hash Table, String | LC | |||
| 23 | Dungeon Game | Hard | LC | ||||
| 24 | House Robber II | Medium | LC | ||||
| 25 | Coin Change II | Medium | LC | ||||
| 26 | Cherry Pickup | Hard | LC | ||||
| 27 | Min Cost Climbing Stairs | Easy | LC | ||||
| 28 | Number of Longest Increasing Subsequence | Medium | LC | ||||
| 29 | House Robber IV | Medium | LC | ||||
| 30 | Jump Game VI | Medium | LC | ||||
| 31 | Unique Paths III | Hard | LC |
Tree (154 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Longest Substring Without Repeating Characters | Medium | 9x | LC | |||
| 2 | Binary Tree Zigzag Level Order Traversal | Medium | 8x | LC | |||
| 3 | Construct Binary Tree from Preorder and Inorder Travers | Medium | 8x | LC | |||
| 4 | Lowest Common Ancestor of a Binary Tree | Medium | 8x | LC | |||
| 5 | Validate Binary Search Tree | Medium | Tree, Depth-First Search, Binary Search Tree | 6x | LC | ||
| 6 | Binary Tree Level Order Traversal | Medium | 6x | LC | |||
| 7 | Minimum Window Substring | Hard | 5x | LC | |||
| 8 | Binary Tree Maximum Path Sum | Hard | 5x | LC | |||
| 9 | Kth Smallest Element in a BST | Medium | 5x | LC | |||
| 10 | Serialize and Deserialize Binary Tree | Hard | String, Tree, Depth-First Search | 5x | LC | ||
| 11 | Diameter of Binary Tree | Easy | 5x | LC | |||
| 12 | Longest Palindromic Substring | Medium | 4x | LC | |||
| 13 | Binary Tree Right Side View | Medium | 4x | LC | |||
| 14 | Implement Trie (Prefix Tree) | Medium | 4x | LC | |||
| 15 | Binary Tree Cameras | Hard | 4x | LC | |||
| 16 | Count Good Nodes in Binary Tree | Medium | 4x | LC | |||
| 17 | Recover Binary Search Tree | Medium | 3x | LC | |||
| 18 | Flatten Binary Tree to Linked List | Medium | Linked List, Stack, Tree | 3x | LC | ||
| 19 | Binary Search Tree Iterator | Medium | 3x | LC | |||
| 20 | Invert Binary Tree | Easy | Tree, Depth-First Search, Breadth-First Search | 3x | LC | ||
| 21 | Lowest Common Ancestor of a Binary Search Tree | Medium | 3x | LC | |||
| 22 | All Nodes Distance K in Binary Tree | Medium | 3x | LC | |||
| 23 | N-ary Tree Level Order Traversal | Medium | 3x | LC | |||
| 24 | Unique Binary Search Trees | Medium | 2x | LC | |||
| 25 | Same Tree | Easy | 2x | LC | |||
| 26 | Symmetric Tree | Easy | 2x | LC | |||
| 27 | Maximum Depth of Binary Tree | Easy | 2x | LC | |||
| 28 | Convert Sorted Array to Binary Search Tree | Easy | 2x | LC | |||
| 29 | Convert Sorted List to Binary Search Tree | Medium | 2x | LC | |||
| 30 | Count Complete Tree Nodes | Easy | 2x | LC | |||
| 31 | Minimum Height Trees | Medium | 2x | LC | |||
| 32 | Longest Substring with At Most K Distinct Characters | Medium | Hash Table, String, Sliding Window | 2x | LC | ||
| 33 | Delete Node in a BST | Medium | Tree, Binary Search Tree, Binary Tree | 2x | LC | ||
| 34 | Subtree of Another Tree | Easy | 2x | LC | |||
| 35 | Palindromic Substrings | Medium | 2x | LC | |||
| 36 | Two Sum IV - Input is a BST | Easy | 2x | LC | |||
| 37 | Distribute Coins in Binary Tree | Medium | 2x | LC | |||
| 38 | Vertical Order Traversal of a Binary Tree | Hard | 2x | LC | |||
| 39 | Cousins in Binary Tree | Easy | 2x | LC | |||
| 40 | Longest Balanced Substring II | Medium | 2x | LC | |||
| 41 | Total Sum Of Interaction Cost In Tree Groups | ? | 2x | LC | |||
| 42 | Minimum Deletions To Make Alternating Substring | ? | 2x | LC | |||
| 43 | Remove K Balanced Substrings | ? | 2x | LC | |||
| 44 | Distinct Points Reachable After Substring Removal | ? | 2x | LC | |||
| 45 | Substring with Concatenation of All Words | Hard | 1x | LC | |||
| 46 | Binary Tree Inorder Traversal | Easy | Stack, Tree, Depth-First Search | 1x | LC | ||
| 47 | Unique Binary Search Trees II | Medium | 1x | LC | |||
| 48 | Construct Binary Tree from Inorder and Postorder Traver | Medium | 1x | LC | |||
| 49 | Balanced Binary Tree | Easy | Tree, Depth-First Search, Binary Tree | 1x | LC | ||
| 50 | Minimum Depth of Binary Tree | Easy | Tree, Depth-First Search, Breadth-First Search | 1x | LC |
...and 104 more in this category.
Array / Two Pointers (79 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Two Sum | Easy | 8x | LC | |||
| 2 | Container With Most Water | Medium | 8x | LC | |||
| 3 | Trapping Rain Water | Hard | 7x | LC | |||
| 4 | Maximum Subarray | Medium | 5x | LC | |||
| 5 | Product of Array Except Self | Medium | 5x | LC | |||
| 6 | Remove Duplicates from Sorted Array | Easy | 4x | LC | |||
| 7 | Subarray Sum Equals K | Medium | 4x | LC | |||
| 8 | Remove Duplicates from Sorted List | Easy | 3x | LC | |||
| 9 | Maximum Product Subarray | Medium | Array, Dynamic Programming | 3x | LC | ||
| 10 | Merge Sorted Array | Easy | 2x | LC | |||
| 11 | Longest Continuous Subarray With Absolute Diff Less Tha | Medium | 2x | LC | |||
| 12 | Stable Subarrays With Equal Boundary and Interior Sum | Medium | 2x | LC | |||
| 13 | Minimum Inversion Count In Subarrays Of Fixed Length | ? | 2x | LC | |||
| 14 | Minimum Operations To Equalize Subarrays | ? | 2x | LC | |||
| 15 | Count Stable Subarrays | ? | 2x | LC | |||
| 16 | Longest Non Decreasing Subarray After Replacing At Most | ? | 2x | LC | |||
| 17 | Count Subarrays With Majority Element Ii | ? | 2x | LC | |||
| 18 | Count Distinct Subarrays Divisible By K In Sorted Array | ? | 2x | LC | |||
| 19 | Longest Balanced Subarray II | Hard | Array, Hash Table, Divide and Conquer | 2x | LC | ||
| 20 | Maximum Total Subarray Value II | Hard | Array, Greedy, Segment Tree | 2x | LC | ||
| 21 | Count Bowl Subarrays | Medium | Array, Stack, Monotonic Stack | 2x | LC | ||
| 22 | Sum of Subarray Minimums | Medium | 1x | LC | |||
| 23 | Subarrays with K Different Integers | Hard | 1x | LC | |||
| 24 | Remove Duplicates From an Unsorted Linked List | Medium | 1x | LC | |||
| 25 | Sum of Subarray Ranges | Medium | 1x | LC | |||
| 26 | Count Subarrays With Fixed Bounds | Hard | 1x | LC | |||
| 27 | Longest Alternating Subarray After Removing At Most One | ? | 1x | LC | |||
| 28 | Minimum Cost to Merge Sorted Lists | Hard | Array, Two Pointers, Binary Search | 1x | LC | ||
| 29 | Maximum Subarray Min Product | ? | 1x | LC | |||
| 30 | Maximum Sum Of Two Non Overlapping Subarrays | ? | 1x | LC | |||
| 31 | Remove Duplicates from Sorted Array II | Medium | LC | ||||
| 32 | Remove Duplicates from Sorted List II | Medium | LC | ||||
| 33 | Two Sum II - Input Array Is Sorted | Medium | LC | ||||
| 34 | Minimum Size Subarray Sum | Medium | LC | ||||
| 35 | Maximum Size Subarray Sum Equals k | Medium | LC | ||||
| 36 | Trapping Rain Water II | Hard | Array, Breadth-First Search, Heap (Priority Queue) | LC | |||
| 37 | Continuous Subarray Sum | Medium | LC | ||||
| 38 | Shortest Unsorted Continuous Subarray | Medium | LC | ||||
| 39 | Maximum Average Subarray I | Easy | LC | ||||
| 40 | Maximum Length of Repeated Subarray | Medium | Array, Binary Search, Dynamic Programming | LC | |||
| 41 | Shortest Subarray with Sum at Least K | Hard | LC | ||||
| 42 | Maximum Sum Circular Subarray | Medium | LC | ||||
| 43 | Binary Subarrays With Sum | Medium | Array, Hash Table, Sliding Window | LC | |||
| 44 | Subarray Sums Divisible by K | Medium | LC | ||||
| 45 | Count Number of Nice Subarrays | Medium | LC | ||||
| 46 | Maximum Sum of Distinct Subarrays With Length K | Medium | LC | ||||
| 47 | Count Subarrays Where Max Element Appears at Least K Ti | Medium | LC | ||||
| 48 | Longest Nice Subarray | Medium | LC | ||||
| 49 | Make Two Arrays Equal by Reversing Subarrays | Easy | LC | ||||
| 50 | Longest Turbulent Subarray | Medium | LC |
...and 29 more in this category.
Sliding Window (4 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Sliding Window Maximum | Hard | Array, Queue, Sliding Window | 4x | LC | ||
| 2 | Longest Repeating Character Replacement | Medium | 2x | LC | |||
| 3 | Sliding Window Median | Hard | 2x | LC | |||
| 4 | Minimum Window Subsequence | ? | 1x | LC |
Intervals (13 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Meeting Rooms II | Medium | 12x | LC | |||
| 2 | Merge Intervals | Medium | Array, Sorting | 7x | LC | ||
| 3 | Insert Interval | Medium | 3x | LC | |||
| 4 | Non-overlapping Intervals | Medium | 3x | LC | |||
| 5 | Count Integers in Intervals | Hard | Design, Segment Tree, Ordered Set | 1x | LC | ||
| 6 | Meeting Rooms | Easy | Array, Sorting | LC | |||
| 7 | Count Odd Numbers in an Interval Range | Easy | LC | ||||
| 8 | Partition Array into Disjoint Intervals | Medium | Array | LC | |||
| 9 | Find Right Interval | Medium | LC | ||||
| 10 | Interval List Intersections | Medium | Array, Two Pointers, Sweep Line | LC | |||
| 11 | Divide Intervals Into Minimum Number of Groups | Medium | LC | ||||
| 12 | Meeting Rooms III | Hard | LC | ||||
| 13 | My Calendar I | Medium | LC |
Heap / PQ (8 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Merge k Sorted Lists | Hard | 7x | LC | |||
| 2 | Kth Largest Element in an Array | Medium | 5x | LC | |||
| 3 | Reorganize String | Medium | 5x | LC | |||
| 4 | Task Scheduler | Medium | 4x | LC | |||
| 5 | Find Median from Data Stream | Hard | 3x | LC | |||
| 6 | Top K Frequent Elements | Medium | 2x | LC | |||
| 7 | Kth Largest Element in a Stream | Easy | 1x | LC | |||
| 8 | Top K Frequent Words | Medium | LC |
Stack / Queue (29 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Valid Parentheses | Easy | 10x | LC | |||
| 2 | Generate Parentheses | Medium | String, Dynamic Programming, Backtracking | 6x | LC | ||
| 3 | Largest Rectangle in Histogram | Hard | 4x | LC | |||
| 4 | Min Stack | Medium | 4x | LC | |||
| 5 | Basic Calculator II | Medium | 4x | LC | |||
| 6 | Daily Temperatures | Medium | Array, Stack, Monotonic Stack | 3x | LC | ||
| 7 | Minimum Remove to Make Valid Parentheses | Medium | String, Stack | 3x | LC | ||
| 8 | Implement Queue using Stacks | Easy | 2x | LC | |||
| 9 | Maximum Frequency Stack | Hard | 2x | LC | |||
| 10 | Remove Invalid Parentheses | Hard | String, Backtracking, Breadth-First Search | 2x | LC | ||
| 11 | Longest Valid Parentheses | Hard | String, Dynamic Programming, Stack | 1x | LC | ||
| 12 | Basic Calculator | Hard | 1x | LC | |||
| 13 | Implement Stack using Queues | Easy | 1x | LC | |||
| 14 | Valid Parenthesis String | Medium | 1x | LC | |||
| 15 | Validate Stack Sequences | Medium | 1x | LC | |||
| 16 | Minimum Insertions To Balance A Parentheses String | ? | 1x | LC | |||
| 17 | Delete Middle Element Of A Stack | ? | 1x | LC | |||
| 18 | Score Of Parentheses | ? | 1x | LC | |||
| 19 | Max Stack | ? | 1x | LC | |||
| 20 | Asteroid Collision | Medium | LC | ||||
| 21 | Basic Calculator III | Hard | LC | ||||
| 22 | Minimum Add to Make Parentheses Valid | Medium | LC | ||||
| 23 | Remove Outermost Parentheses | Easy | LC | ||||
| 24 | Different Ways to Add Parentheses | Medium | LC | ||||
| 25 | Design a Stack With Increment Operation | Medium | LC | ||||
| 26 | Maximum Nesting Depth of the Parentheses | Easy | LC | ||||
| 27 | Broken Calculator | Medium | LC | ||||
| 28 | Build an Array With Stack Operations | Medium | LC | ||||
| 29 | Calculator with Method Chaining | Easy | LC |
HashMap / Design (9 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | LRU Cache | Medium | 15x | LC | |||
| 2 | Group Anagrams | Medium | Array, Hash Table, String | 8x | LC | ||
| 3 | Design Hit Counter | Medium | 2x | LC | |||
| 4 | Insert Delete GetRandom O(1) | Medium | 2x | LC | |||
| 5 | LFU Cache | Hard | 1x | LC | |||
| 6 | First Unique Number | Medium | 1x | LC | |||
| 7 | First Unique Character in a String | Easy | LC | ||||
| 8 | Design HashMap | Easy | LC | ||||
| 9 | Insert Delete GetRandom O(1) - Duplicates allowed | Hard | LC |
Binary Search (7 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Search in Rotated Sorted Array | Medium | 11x | LC | |||
| 2 | Find First and Last Position of Element in Sorted Array | Medium | 4x | LC | |||
| 3 | Sqrt(x) | Easy | Math, Binary Search | 1x | LC | ||
| 4 | Search in Rotated Sorted Array II | Medium | Array, Binary Search | 1x | LC | ||
| 5 | Split Array Largest Sum | Hard | 1x | LC | |||
| 6 | Binary Search | Easy | Array, Binary Search | 1x | LC | ||
| 7 | Binary Searchable Numbers in an Unsorted Array | Medium | 1x | LC |
String (34 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | String to Integer (atoi) | Medium | 3x | LC | |||
| 2 | Valid Palindrome | Easy | 3x | LC | |||
| 3 | Shortest Palindrome | Hard | 3x | LC | |||
| 4 | Text Justification | Hard | Array, String, Simulation | 2x | LC | ||
| 5 | Count Binary Palindromic Numbers | Hard | Math, Bit Manipulation | 2x | LC | ||
| 6 | Palindrome Linked List | Easy | 1x | LC | |||
| 7 | Valid Anagram | Easy | 1x | LC | |||
| 8 | Find All Anagrams in a String | Medium | 1x | LC | |||
| 9 | Palindrome Partitioning II | Hard | String, Dynamic Programming | 1x | LC | ||
| 10 | Count Palindromic Subsequences | Hard | 1x | LC | |||
| 11 | Longest Palindromic Subsequence | Medium | String, Dynamic Programming | 1x | LC | ||
| 12 | Palindrome Partitioning Iii | ? | 1x | LC | |||
| 13 | Count Different Palindromic Subsequences | Hard | String, Dynamic Programming | 1x | LC | ||
| 14 | Longest Chunked Palindrome Decomposition | ? | 1x | LC | |||
| 15 | Palindrome Number | Easy | LC | ||||
| 16 | Palindrome Partitioning | Medium | String, Dynamic Programming, Backtracking | LC | |||
| 17 | Palindrome Permutation | Easy | LC | ||||
| 18 | Encode and Decode Strings | Medium | Array, String, Design | LC | |||
| 19 | Decode String | Medium | LC | ||||
| 20 | Longest Palindrome | Easy | Hash Table, String, Greedy | LC | |||
| 21 | Find the Closest Palindrome | Hard | Math, String | LC | |||
| 22 | Valid Palindrome II | Easy | Two Pointers, String, Greedy | LC | |||
| 23 | Palindrome Removal | Hard | LC | ||||
| 24 | Minimum Number of Moves to Make Palindrome | Hard | Two Pointers, String, Greedy | LC | |||
| 25 | Largest Palindromic Number | Medium | LC | ||||
| 26 | Super Palindromes | Hard | LC | ||||
| 27 | Unique Length-3 Palindromic Subsequences | Medium | LC | ||||
| 28 | Construct K Palindrome Strings | Medium | LC | ||||
| 29 | Smallest Palindromic Rearrangement I | Medium | LC | ||||
| 30 | Longest Palindrome by Concatenating Two Letter Words | Medium | LC | ||||
| 31 | Find Resultant Array After Removing Anagrams | Easy | LC | ||||
| 32 | Minimum Number of Steps to Make Two Strings Anagram | Medium | LC | ||||
| 33 | Maximum Palindromes After Operations | Medium | LC | ||||
| 34 | Palindrome Pairs | Hard | LC |
Backtracking (29 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Word Search | Medium | 5x | LC | |||
| 2 | Combination Sum | Medium | 4x | LC | |||
| 3 | Partition Equal Subset Sum | Medium | 4x | LC | |||
| 4 | Letter Combinations of a Phone Number | Medium | Hash Table, String, Backtracking | 3x | LC | ||
| 5 | Next Permutation | Medium | Array, Two Pointers | 3x | LC | ||
| 6 | Word Search II | Hard | Array, String, Backtracking | 3x | LC | ||
| 7 | Sudoku Solver | Hard | 2x | LC | |||
| 8 | Subsets | Medium | Array, Backtracking, Bit Manipulation | 2x | LC | ||
| 9 | Permutations | Medium | 1x | LC | |||
| 10 | Combinations | Medium | 1x | LC | |||
| 11 | Largest Divisible Subset | Medium | 1x | LC | |||
| 12 | Combination Sum Iv | ? | 1x | LC | |||
| 13 | Valid Sudoku | Medium | LC | ||||
| 14 | Combination Sum II | Medium | LC | ||||
| 15 | Permutations II | Medium | Array, Backtracking, Sorting | LC | |||
| 16 | N-Queens | Hard | Array, Backtracking | LC | |||
| 17 | N-Queens II | Hard | LC | ||||
| 18 | Subsets II | Medium | LC | ||||
| 19 | Permutation in String | Medium | LC | ||||
| 20 | Partition to K Equal Sum Subsets | Medium | LC | ||||
| 21 | Letter Case Permutation | Medium | LC | ||||
| 22 | Previous Permutation With One Swap | Medium | LC | ||||
| 23 | Largest Combination With Bitwise AND Greater Than Zero | Medium | LC | ||||
| 24 | Count Number of Maximum Bitwise-OR Subsets | Medium | LC | ||||
| 25 | Permutation Sequence | Hard | LC | ||||
| 26 | Word Subsets | Medium | LC | ||||
| 27 | Sum of All Subset XOR Totals | Easy | LC | ||||
| 28 | Build Array from Permutation | Easy | Array, Simulation | LC | |||
| 29 | Combination Sum III | Medium | LC |
Matrix / Grid (22 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Spiral Matrix | Medium | 7x | LC | |||
| 2 | Kth Smallest Element in a Sorted Matrix | Medium | 4x | LC | |||
| 3 | Rotate Image | Medium | 3x | LC | |||
| 4 | Set Matrix Zeroes | Medium | 3x | LC | |||
| 5 | Spiral Matrix II | Medium | 1x | LC | |||
| 6 | Search a 2D Matrix II | Medium | Array, Binary Search, Divide and Conquer | 1x | LC | ||
| 7 | Game of Life | Medium | 1x | LC | |||
| 8 | 01 Matrix | Medium | 1x | LC | |||
| 9 | Transpose Matrix | Easy | Array, Matrix, Simulation | 1x | LC | ||
| 10 | Shortest Path in Binary Matrix | Medium | 1x | LC | |||
| 11 | Minimum Cost Matrix Multiplication | ? | 1x | LC | |||
| 12 | Search a 2D Matrix | Medium | LC | ||||
| 13 | Spiral Matrix III | Medium | Array, Matrix, Simulation | LC | |||
| 14 | Spiral Matrix IV | Medium | LC | ||||
| 15 | Cells with Odd Values in a Matrix | Easy | LC | ||||
| 16 | Maximum Matrix Sum | Medium | LC | ||||
| 17 | Count Negative Numbers in a Sorted Matrix | Easy | LC | ||||
| 18 | Determine Whether Matrix Can Be Obtained By Rotation | Easy | Array, Matrix | LC | |||
| 19 | Matrix Diagonal Sum | Easy | LC | ||||
| 20 | The K Weakest Rows in a Matrix | Easy | LC | ||||
| 21 | Sort Matrix by Diagonals | Medium | LC | ||||
| 22 | Paths in Matrix Whose Sum Is Divisible by K | Hard | LC |
Linked List (29 problems)
| # | Problem | Difficulty | Tags | Seen | LC | Editorial | Video |
|---|---|---|---|---|---|---|---|
| 1 | Reverse Linked List | Easy | 7x | LC | |||
| 2 | Add Two Numbers | Medium | 6x | LC | |||
| 3 | Intersection of Two Linked Lists | Easy | 4x | LC | |||
| 4 | Merge Two Sorted Lists | Easy | 3x | LC | |||
| 5 | Linked List Cycle | Easy | Hash Table, Linked List, Two Pointers | 3x | LC | ||
| 6 | Add Two Numbers II | Medium | 3x | LC | |||
| 7 | Linked List Cycle II | Medium | 2x | LC | |||
| 8 | Swap Nodes in Pairs | Medium | 1x | LC | |||
| 9 | Remove Linked List Elements | Easy | 1x | LC | |||
| 10 | Middle of the Linked List | Easy | 1x | LC | |||
| 11 | Flatten a Multilevel Doubly Linked List | Medium | 1x | LC | |||
| 12 | Plus One Linked List | Medium | Linked List, Math | 1x | LC | ||
| 13 | Reverse Linked List II | Medium | LC | ||||
| 14 | Delete Node in a Linked List | Medium | LC | ||||
| 15 | Odd Even Linked List | Medium | LC | ||||
| 16 | Design Linked List | Medium | LC | ||||
| 17 | Next Greater Node In Linked List | Medium | LC | ||||
| 18 | Convert Binary Number in a Linked List to Integer | Easy | LC | ||||
| 19 | Delete N Nodes After M Nodes of a Linked List | Easy | LC | ||||
| 20 | Merge In Between Linked Lists | Medium | LC | ||||
| 21 | Delete the Middle Node of a Linked List | Medium | LC | ||||
| 22 | Maximum Twin Sum of a Linked List | Medium | LC | ||||
| 23 | Double a Number Represented as a Linked List | Medium | LC | ||||
| 24 | Split Linked List in Parts | Medium | LC | ||||
| 25 | Insert Greatest Common Divisors in Linked List | Medium | Linked List, Math, Number Theory | LC | |||
| 26 | Remove Zero Sum Consecutive Nodes from Linked List | Medium | LC | ||||
| 27 | Delete Nodes From Linked List Present in Array | Medium | Array, Hash Table, Linked List | LC | |||
| 28 | Remove Nodes From Linked List | Medium | LC | ||||
| 29 | Swapping Nodes in a Linked List | Medium | Linked List, Two Pointers | LC |