Microsoft Interview Questions — 100 DSA Problems
100 problems with full solutions in Python, Java, C++, JavaScript, Go, Rust.
Most frequently asked Microsoft LeetCode questions for software engineering interviews.
- Two Sum (EASY) — Array, Hash Table
- Merge Sorted Array (EASY) — Array, Two Pointers, Sorting
- Longest Substring Without Repeating Characters (MEDIUM) — Hash Table, String, Sliding Window
- Add Two Numbers (MEDIUM) — Linked List, Math, Recursion
- Longest Palindromic Substring (MEDIUM) — Two Pointers, String, Dynamic Programming
- Trapping Rain Water (HARD) — Array, Two Pointers, Dynamic Programming, Stack, Monotonic Stack
- Merge Intervals (MEDIUM) — Array, Sorting
- Valid Parentheses (EASY) — String, Stack
- Median of Two Sorted Arrays (HARD) — Array, Binary Search, Divide and Conquer
- Maximum Subarray (MEDIUM) — Array, Divide and Conquer, Dynamic Programming
- 3Sum (MEDIUM) — Array, Two Pointers, Sorting
- Group Anagrams (MEDIUM) — Array, Hash Table, String, Sorting
- Search in Rotated Sorted Array (MEDIUM) — Array, Binary Search
- Reverse Nodes in k-Group (HARD) — Linked List, Recursion
- Merge Two Sorted Lists (EASY) — Linked List, Recursion
- Spiral Matrix (MEDIUM) — Array, Matrix, Simulation
- Roman to Integer (EASY) — Hash Table, Math, String
- Climbing Stairs (EASY) — Math, Dynamic Programming, Memoization
- Rotate Image (MEDIUM) — Array, Math, Matrix
- Container With Most Water (MEDIUM) — Array, Two Pointers, Greedy
- Merge k Sorted Lists (HARD) — Linked List, Divide and Conquer, Heap (Priority Queue), Merge Sort
- Palindrome Number (EASY) — Math
- Sort Colors (MEDIUM) — Array, Two Pointers, Sorting
- Longest Common Prefix (EASY) — String, Trie
- Remove Duplicates from Sorted Array (EASY) — Array, Two Pointers
- Set Matrix Zeroes (MEDIUM) — Array, Hash Table, Matrix
- Letter Combinations of a Phone Number (MEDIUM) — Hash Table, String, Backtracking
- Reverse Integer (MEDIUM) — Math
- Word Search (MEDIUM) — Array, String, Backtracking, Depth-First Search, Matrix
- Generate Parentheses (MEDIUM) — String, Dynamic Programming, Backtracking
- Jump Game (MEDIUM) — Array, Dynamic Programming, Greedy
- Next Permutation (MEDIUM) — Array, Two Pointers
- Remove Element (EASY) — Array, Two Pointers
- Minimum Path Sum (MEDIUM) — Array, Dynamic Programming, Matrix
- Binary Tree Zigzag Level Order Traversal (MEDIUM) — Tree, Breadth-First Search, Binary Tree
- String to Integer (atoi) (MEDIUM) — String
- Validate Binary Search Tree (MEDIUM) — Tree, Depth-First Search, Binary Search Tree, Binary Tree
- First Missing Positive (HARD) — Array, Hash Table
- Find the Index of the First Occurrence in a String (EASY) — Two Pointers, String, String Matching
- Combination Sum (MEDIUM) — Array, Backtracking
- Find First and Last Position of Element in Sorted Array (MEDIUM) — Array, Binary Search
- Largest Rectangle in Histogram (HARD) — Array, Stack, Monotonic Stack
- Jump Game II (MEDIUM) — Array, Dynamic Programming, Greedy
- Permutations (MEDIUM) — Array, Backtracking
- Unique Paths (MEDIUM) — Math, Dynamic Programming, Combinatorics
- Swap Nodes in Pairs (MEDIUM) — Linked List, Recursion
- 4Sum (MEDIUM) — Array, Two Pointers, Sorting
- Search Insert Position (EASY) — Array, Binary Search
- Pow(x, n) (MEDIUM) — Math, Recursion
- Integer to Roman (MEDIUM) — Hash Table, Math, String
M
Microsoft
100 questions tracked100 with solutions
Frequency scoreSorted highest → lowest frequency✓ Our Solution = we have a detailed walkthrough
Showing 100 of 100 questions
3Hash TableStringSliding Window
5Two PointersStringDynamic Programming
6ArrayTwo PointersDynamic ProgrammingStack+1
9ArrayBinary SearchDivide and Conquer
10ArrayDivide and ConquerDynamic Programming
12ArrayHash TableStringSorting
18MathDynamic ProgrammingMemoization
21Linked ListDivide and ConquerHeap (Priority Queue)Merge Sort
27Hash TableStringBacktracking
29ArrayStringBacktrackingDepth-First Search+1
30StringDynamic ProgrammingBacktracking
31ArrayDynamic ProgrammingGreedy
34ArrayDynamic ProgrammingMatrix
35TreeBreadth-First SearchBinary Tree
37TreeDepth-First SearchBinary Search TreeBinary Tree
39Two PointersStringString Matching
41MediumFind First and Last Position of Element in Sorted Array✓ Our Solution ArrayBinary Search
42ArrayStackMonotonic Stack
43ArrayDynamic ProgrammingGreedy
45MathDynamic ProgrammingCombinatorics
51ArrayBacktrackingBit Manipulation
52StringDynamic ProgrammingRecursion
54TreeBreadth-First SearchBinary Tree
57StackTreeDepth-First SearchBinary Tree
60StringDynamic Programming
63ArrayHash TableBacktrackingMatrix
64StringDynamic ProgrammingStack
65StringDynamic Programming
66ArrayDynamic ProgrammingStackMatrix+1
72TreeDepth-First SearchBreadth-First SearchBinary Tree
73MathStringBit ManipulationSimulation
74Hash TableStringSliding Window
76StringDynamic ProgrammingGreedyRecursion
85TreeDepth-First SearchBinary Search TreeBinary Tree
86StringDynamic Programming
87TreeDepth-First SearchBreadth-First SearchBinary Tree
88TreeDepth-First SearchBreadth-First SearchBinary Tree
89ArrayBacktrackingBit Manipulation
95Hash TableStringSliding Window
97ArrayDynamic ProgrammingMatrix
98MathDynamic ProgrammingTreeBinary Search Tree+1
100Dynamic ProgrammingBacktrackingTreeBinary Search Tree+1