Microsoft LeetCode Questions
100 questions all-time · 21 easy · 63 medium · 16 hard
| # | Problem | Difficulty | Frequency | Acceptance |
|---|---|---|---|---|
| 1 | Two Sum Array, Hash Table | Easy | 100 | 55.8% |
| 2 | Merge Sorted Array Array, Two Pointers, Sorting | Easy | 84 | 52.9% |
| 3 | Longest Substring Without Repeating Characters Hash Table, String, Sliding Window | Medium | 79 | 36.9% |
| 4 | Add Two Numbers Linked List, Math, Recursion | Medium | 78 | 46.2% |
| 5 | Longest Palindromic Substring Two Pointers, String, Dynamic Programming | Medium | 76 | 35.8% |
| 6 | Trapping Rain Water Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack | Hard | 76 | 65.1% |
| 7 | Merge Intervals Array, Sorting | Medium | 74 | 49.4% |
| 8 | Valid Parentheses String, Stack | Easy | 73 | 42.3% |
| 9 | Median of Two Sorted Arrays Array, Binary Search, Divide and Conquer | Hard | 73 | 43.8% |
| 10 | Maximum Subarray Array, Divide and Conquer, Dynamic Programming | Medium | 73 | 52.1% |
| 11 | 3Sum Array, Two Pointers, Sorting | Medium | 73 | 37.1% |
| 12 | Group Anagrams Array, Hash Table, String, Sorting | Medium | 70 | 70.9% |
| 13 | Search in Rotated Sorted Array Array, Binary Search | Medium | 69 | 42.8% |
| 14 | Reverse Nodes in k-Group Linked List, Recursion | Hard | 69 | 63.0% |
| 15 | Merge Two Sorted Lists Linked List, Recursion | Easy | 69 | 66.8% |
| 16 | Spiral Matrix Array, Matrix, Simulation | Medium | 68 | 53.9% |
| 17 | Roman to Integer Hash Table, Math, String | Easy | 68 | 64.9% |
| 18 | Climbing Stairs Math, Dynamic Programming, Memoization | Easy | 68 | 53.5% |
| 19 | Rotate Image Array, Math, Matrix | Medium | 68 | 77.9% |
| 20 | Container With Most Water Array, Two Pointers, Greedy | Medium | 68 | 57.8% |
| 21 | Merge k Sorted Lists Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort | Hard | 68 | 56.8% |
| 22 | Palindrome Number Math | Easy | 68 | 59.2% |
| 23 | Sort Colors Array, Two Pointers, Sorting | Medium | 66 | 67.6% |
| 24 | Longest Common Prefix String, Trie | Easy | 66 | 45.5% |
| 25 | Remove Duplicates from Sorted Array Array, Two Pointers | Easy | 65 | 60.4% |
| 26 | Set Matrix Zeroes Array, Hash Table, Matrix | Medium | 63 | 60.7% |
| 27 | Letter Combinations of a Phone Number Hash Table, String, Backtracking | Medium | 63 | 63.9% |
| 28 | Reverse Integer Math | Medium | 63 | 30.3% |
| 29 | Word Search Array, String, Backtracking, Depth-First Search, Matrix | Medium | 61 | 45.3% |
| 30 | Generate Parentheses String, Dynamic Programming, Backtracking | Medium | 60 | 77.1% |
| 31 | Jump Game Array, Dynamic Programming, Greedy | Medium | 59 | 39.5% |
| 32 | Next Permutation Array, Two Pointers | Medium | 59 | 43.1% |
| 33 | Remove Element Array, Two Pointers | Easy | 58 | 60.0% |
| 34 | Minimum Path Sum Array, Dynamic Programming, Matrix | Medium | 58 | 66.5% |
| 35 | Binary Tree Zigzag Level Order Traversal Tree, Breadth-First Search, Binary Tree | Medium | 58 | 61.7% |
| 36 | String to Integer (atoi) String | Medium | 56 | 19.2% |
| 37 | Validate Binary Search Tree Tree, Depth-First Search, Binary Search Tree, Binary Tree | Medium | 56 | 34.4% |
| 38 | First Missing Positive Array, Hash Table | Hard | 55 | 41.1% |
| 39 | Find the Index of the First Occurrence in a String Two Pointers, String, String Matching | Easy | 55 | 45.0% |
| 40 | Combination Sum Array, Backtracking | Medium | 55 | 74.7% |
| 41 | Find First and Last Position of Element in Sorted Array Array, Binary Search | Medium | 55 | 46.8% |
| 42 | Largest Rectangle in Histogram Array, Stack, Monotonic Stack | Hard | 55 | 47.4% |
| 43 | Jump Game II Array, Dynamic Programming, Greedy | Medium | 54 | 41.5% |
| 44 | Permutations Array, Backtracking | Medium | 54 | 80.7% |
| 45 | Unique Paths Math, Dynamic Programming, Combinatorics | Medium | 53 | 65.8% |
| 46 | Swap Nodes in Pairs Linked List, Recursion | Medium | 53 | 67.2% |
| 47 | 4Sum Array, Two Pointers, Sorting | Medium | 52 | 38.2% |
| 48 | Search Insert Position Array, Binary Search | Easy | 52 | 49.0% |
| 49 | Pow(x, n) Math, Recursion | Medium | 52 | 37.0% |
| 50 | Integer to Roman Hash Table, Math, String | Medium | 52 | 68.6% |
| 51 | Subsets Array, Backtracking, Bit Manipulation | Medium | 52 | 80.9% |
| 52 | Regular Expression Matching String, Dynamic Programming, Recursion | Hard | 52 | 29.3% |
| 53 | Search a 2D Matrix Array, Binary Search, Matrix | Medium | 51 | 52.3% |
| 54 | Binary Tree Level Order Traversal Tree, Breadth-First Search, Binary Tree | Medium | 51 | 70.6% |
| 55 | N-Queens Array, Backtracking | Hard | 51 | 72.8% |
| 56 | Valid Sudoku Array, Hash Table, Matrix | Medium | 50 | 62.3% |
| 57 | Binary Tree Inorder Traversal Stack, Tree, Depth-First Search, Binary Tree | Easy | 50 | 78.6% |
| 58 | Divide Two Integers Math, Bit Manipulation | Medium | 50 | 18.4% |
| 59 | Remove Nth Node From End of List Linked List, Two Pointers | Medium | 50 | 49.0% |
| 60 | Edit Distance String, Dynamic Programming | Medium | 50 | 58.8% |
| 61 | Simplify Path String, Stack | Medium | 50 | 47.9% |
| 62 | Restore IP Addresses String, Backtracking | Medium | 49 | 53.2% |
| 63 | Sudoku Solver Array, Hash Table, Backtracking, Matrix | Hard | 49 | 63.9% |
| 64 | Longest Valid Parentheses String, Dynamic Programming, Stack | Hard | 47 | 36.3% |
| 65 | Decode Ways String, Dynamic Programming | Medium | 46 | 36.5% |
| 66 | Maximal Rectangle Array, Dynamic Programming, Stack, Matrix, Monotonic Stack | Hard | 45 | 53.7% |
| 67 | Sqrt(x) Math, Binary Search | Easy | 45 | 40.4% |
| 68 | Reverse Linked List II Linked List | Medium | 44 | 49.6% |
| 69 | Permutations II Array, Backtracking, Sorting | Medium | 44 | 61.6% |
| 70 | Zigzag Conversion String | Medium | 44 | 51.6% |
| 71 | Plus One Array, Math | Easy | 43 | 47.5% |
| 72 | Symmetric Tree Tree, Depth-First Search, Breadth-First Search, Binary Tree | Easy | 43 | 59.3% |
| 73 | Add Binary Math, String, Bit Manipulation, Simulation | Easy | 41 | 55.7% |
| 74 | Minimum Window Substring Hash Table, String, Sliding Window | Hard | 41 | 45.4% |
| 75 | Search in Rotated Sorted Array II Array, Binary Search | Medium | 39 | 38.9% |
| 76 | Wildcard Matching String, Dynamic Programming, Greedy, Recursion | Hard | 39 | 29.9% |
| 77 | Remove Duplicates from Sorted List Linked List | Easy | 39 | 54.9% |
| 78 | Remove Duplicates from Sorted Array II Array, Two Pointers | Medium | 38 | 62.9% |
| 79 | Insert Interval Array | Medium | 38 | 43.5% |
| 80 | Combination Sum II Array, Backtracking | Medium | 38 | 57.7% |
| 81 | Multiply Strings Math, String, Simulation | Medium | 38 | 42.3% |
| 82 | Text Justification Array, String, Simulation | Hard | 38 | 48.1% |
| 83 | Spiral Matrix II Array, Matrix, Simulation | Medium | 38 | 73.4% |
| 84 | Length of Last Word String | Easy | 38 | 56.3% |
| 85 | Recover Binary Search Tree Tree, Depth-First Search, Binary Search Tree, Binary Tree | Medium | 36 | 56.3% |
| 86 | Interleaving String String, Dynamic Programming | Medium | 36 | 42.2% |
| 87 | Same Tree Tree, Depth-First Search, Breadth-First Search, Binary Tree | Easy | 36 | 65.1% |
| 88 | Maximum Depth of Binary Tree Tree, Depth-First Search, Breadth-First Search, Binary Tree | Easy | 36 | 77.1% |
| 89 | Subsets II Array, Backtracking, Bit Manipulation | Medium | 36 | 59.5% |
| 90 | Rotate List Linked List, Two Pointers | Medium | 36 | 39.9% |
| 91 | Remove Duplicates from Sorted List II Linked List, Two Pointers | Medium | 35 | 49.9% |
| 92 | Combinations Backtracking | Medium | 31 | 72.9% |
| 93 | Count and Say String | Medium | 31 | 60.5% |
| 94 | 3Sum Closest Array, Two Pointers, Sorting | Medium | 31 | 46.9% |
| 95 | Substring with Concatenation of All Words Hash Table, String, Sliding Window | Hard | 27 | 33.0% |
| 96 | Partition List Linked List, Two Pointers | Medium | 24 | 59.0% |
| 97 | Unique Paths II Array, Dynamic Programming, Matrix | Medium | 24 | 43.2% |
| 98 | Unique Binary Search Trees Math, Dynamic Programming, Tree, Binary Search Tree, Binary Tree | Medium | 21 | 62.4% |
| 99 | N-Queens II Backtracking | Hard | 21 | 76.7% |
| 100 | Unique Binary Search Trees II Dynamic Programming, Backtracking, Tree, Binary Search Tree, Binary Tree | Medium | 13 | 60.4% |
How to read this list
The tabs at the top split the questions by how recently people said they were asked in interviews. "Last 30 Days" is the past month, "Last 3 Months" is the past quarter, and so on. "All Time" is every question on record for this company.
Frequency is a score from 0 to 100 for how often a question showed up in that time window. A higher number means it came up more often, so the list starts with the most common questions first. Acceptance is the share of submissions that pass on LeetCode. Click any question to open it on LeetCode.