Microsoft
Loops that lean on practical engineering judgment — clean code, testing, and how you handle ambiguity matter as much as finding the optimal algorithm.
Typical loop
- 1Recruiter screen
- 2Technical phone screen
- 3Onsite: three to four coding and design rounds
- 4System design round for senior roles
- 5As-appropriate round with a senior leader
Questions
Callback's practice questions and the LeetCode questions Microsoft has been asking, filtered together.
Asked on LeetCode
1,384 questions · all time
- Find the Smallest Divisor Given a ThresholdmediumArrayBinary Searchfrequency 27.3
- First Bad VersioneasyBinary SearchInteractivefrequency 27.3
- Game Play Analysis IVmediumDatabasefrequency 27.3
- Game of LifemediumArrayMatrixSimulationfrequency 27.3
- Get the Second Most Recent ActivityhardDatabasefrequency 27.3
- Greatest English Letter in Upper and Lower CaseeasyHash TableStringEnumerationfrequency 27.3
- HeatersmediumArrayTwo PointersBinary SearchSortingfrequency 27.3
- Inorder Successor in BSTmediumTreeDepth-First SearchBinary Search TreeBinary Treefrequency 27.3
- Is Graph Bipartite?mediumDepth-First SearchBreadth-First SearchUnion-FindGraph Theory+2frequency 27.3
- Kth Largest Element in a StreameasyTreeDesignBinary Search TreeHeap (Priority Queue)+2frequency 27.3
- Largest BST SubtreemediumDynamic ProgrammingTreeDepth-First SearchBinary Search Tree+2frequency 27.3
- Largest Divisible SubsetmediumArrayMathDynamic ProgrammingSortingfrequency 27.3
- Largest Positive Integer That Exists With Its NegativeeasyArrayHash TableTwo PointersSortingfrequency 27.3
- Longest Increasing Path in a MatrixhardArrayDynamic ProgrammingDepth-First SearchBreadth-First Search+5frequency 27.3
- Longest Subarray of 1's After Deleting One ElementmediumArrayDynamic ProgrammingSliding Windowfrequency 27.3
- Longest Substring with At Most K Distinct CharactersmediumHash TableStringSliding Windowfrequency 27.3
- Lowest Common Ancestor of a Binary Tree IImediumTreeDepth-First SearchBinary TreeBinary Lifting+1frequency 27.3
- Make the Prefix Sum Non-negativemediumArrayGreedyHeap (Priority Queue)frequency 27.3
- Max Area of IslandmediumArrayDepth-First SearchBreadth-First SearchUnion-Find+1frequency 27.3
- Max Dot Product of Two SubsequenceshardArrayDynamic ProgrammingLongest Common Subsequencefrequency 27.3
- Maximize Number of Nice DivisorshardMathRecursionNumber Theoryfrequency 27.3
- Maximum Binary TreemediumArrayDivide and ConquerStackTree+3frequency 27.3
- Maximum Number of Intersections on the CharthardArrayHash TableMathBinary Indexed Tree+3frequency 27.3
- Maximum Number of Non-overlapping Palindrome SubstringshardTwo PointersStringDynamic ProgrammingGreedyfrequency 27.3
- Maximum Number of Operations With the Same Score IeasyArraySimulationfrequency 27.3
- Maximum Price to Fill a BagmediumArrayGreedySortingfrequency 27.3
- Maximum Score Of Spliced ArrayhardArrayDynamic Programmingfrequency 27.3
- Maximum Size of a Set After RemovalsmediumArrayHash TableGreedyfrequency 27.3
- Maximum Subtree of the Same ColormediumArrayDynamic ProgrammingTreeDepth-First Searchfrequency 27.3
- Maximum Value at a Given Index in a Bounded ArraymediumMathBinary SearchGreedyfrequency 27.3
- Maximum of Absolute Value ExpressionmediumArrayMathfrequency 27.3
- Minimum Amount of Time to Collect GarbagemediumArrayStringPrefix Sumfrequency 27.3
- Minimum Cost to Cut a StickhardArrayDynamic ProgrammingSortingfrequency 27.3
- Minimum Cost to Separate Sentence Into RowsmediumStringDynamic Programmingfrequency 27.3
- Minimum Deletions to Make Array BeautifulmediumArrayStackGreedyfrequency 27.3
- Minimum IncompatibilityhardArrayHash TableDynamic ProgrammingBit Manipulation+1frequency 27.3
- Minimum Number of Moves to Make PalindromehardTwo PointersStringGreedyBinary Indexed Treefrequency 27.3
- Minimum Number of Removals to Make Mountain ArrayhardArrayBinary SearchDynamic ProgrammingGreedyfrequency 27.3
- Minimum Operations to Halve Array SummediumArrayGreedyHeap (Priority Queue)frequency 27.3
- Minimum Rectangles to Cover PointsmediumArrayGreedySortingfrequency 27.3
- Minimum Sensors to Cover GridmediumMathfrequency 27.3
- Minimum Value to Get Positive Step by Step SumeasyArrayPrefix Sumfrequency 27.3
- N-Queens IIhardBacktrackingAlgorithm Xfrequency 27.3
- Nth Highest SalarymediumDatabasefrequency 27.3
- Number of Distinct Binary Strings After Applying OperationsmediumMathStringfrequency 27.3
- Number of Visible People in a QueuehardArrayStackMonotonic Stackfrequency 27.3
- Number of Ways to Split a StringmediumMathStringfrequency 27.3
- Pacific Atlantic Water FlowmediumArrayDepth-First SearchBreadth-First SearchMatrixfrequency 27.3
- Palindrome Partitioning IIhardStringDynamic Programmingfrequency 27.3
- Palindrome RemovalhardArrayDynamic Programmingfrequency 27.3