Hiring volume
- Total Hires: 1,500+ freshers in India
- SDE-1: 1,200+ selections
- SDE-2: 300+ selections
This page collects Microsoft placement papers from 2024 with previous-year questions, solutions, and the 2024 exam pattern. It is useful when you want real drive history: what the OA looked like, which question types repeated, and how solutions were approached. Work through the papers below to build speed and accuracy, then compare against newer 2025 material so your prep matches both established Microsoft patterns and the latest shifts.
| Section | Questions | Time | Difficulty | Focus Areas |
|---|---|---|---|---|
| Coding Problem 1 | 1 | 20 min | Medium | Arrays, strings |
| Coding Problem 2 | 1 | 20 min | Medium | Trees, graphs |
| Coding Problem 3 | 1 | 25 min | Hard | Dynamic programming |
| Coding Problem 4 | 1 | 25 min | Hard | Advanced DSA |
Total: 3-4 problems, 60-90 minutes
Platform: Microsoft Codility or HackerRank
Languages Allowed: C++, Java, Python, C#
Success Rate: ~15-20% cleared OA and advanced to interviews
This section contains practice questions styled on Microsoft placement papers 2024 (previous-year pattern), with worked solutions. Use them as timed sectional drills - from student reports drives vary by college and role, so treat this as a high-signal practice bank, not an official paper dump.
Problem Statement: Find the longest common prefix string amongst an array of strings.
Example:
Input: ["flower","flow","flight"]Output: "fl"Solution (Java):
public String longestCommonPrefix(String[] strs) { if (strs.length == 0) return ""; String pref = strs[0]; for (int i = 1; i < strs.length; i++) { while (!strs[i].startsWith(pref)) { pref = pref.substring(0, pref.length() - 1); if (pref.isEmpty()) return ""; } } return pref;}Time Complexity: O(S)
Space Complexity: O(1)
Problem Statement: Merge two sorted linked lists and return a new sorted list.
Example:
Input: 1→2→4 , 1→3→4Output: 1→1→2→3→4→4Solution (Java):
public ListNode mergeTwoLists(ListNode a, ListNode b) { ListNode dummy = new ListNode(0), cur = dummy; while (a != null && b != null) { if (a.val <= b.val) { cur.next = a; a = a.next; } else { cur.next = b; b = b.next; } cur = cur.next; } cur.next = (a != null) ? a : b; return dummy.next;}Time Complexity: O(n + m)
Space Complexity: O(1)
Problem Statement: Given an array of integers and a target, return indices of two numbers that add up to target.
Example:
Input: nums = [2, 7, 11, 15], target = 9Output: [0, 1]Solution (Java):
public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int need = target - nums[i]; if (map.containsKey(need)) return new int[]{map.get(need), i}; map.put(nums[i], i); } return new int[]{};}Time Complexity: O(n)
Space Complexity: O(n)
Problem Statement: Rotate the array to the right by k steps.
Example:
Input: [1,2,3,4,5,6,7], k = 3Output: [5,6,7,1,2,3,4]Solution (Java):
public void rotate(int[] nums, int k) { k %= nums.length; reverse(nums, 0, nums.length - 1); reverse(nums, 0, k - 1); reverse(nums, k, nums.length - 1);}void reverse(int[] a, int l, int r) { while (l < r) { int t = a[l]; a[l++] = a[r]; a[r--] = t; }}Time Complexity: O(n)
Space Complexity: O(1)
Problem Statement: Find the contiguous subarray with the largest sum.
Example:
Input: [-2, 1, -3, 4, -1, 2, 1, -5, 4]Output: 6 // [4, -1, 2, 1]Solution (Java):
public int maxSubArray(int[] nums) { int best = nums[0], cur = nums[0]; for (int i = 1; i < nums.length; i++) { cur = Math.max(nums[i], cur + nums[i]); best = Math.max(best, cur); } return best;}Time Complexity: O(n)
Space Complexity: O(1)
Problem Statement: Return the first non-repeating character in a string, or ‘_’ if none.
Example:
Input: "swiss"Output: 'w'Solution (Java):
public char firstUnique(String s) { int[] freq = new int[256]; for (char c : s.toCharArray()) freq[c]++; for (char c : s.toCharArray()) if (freq[c] == 1) return c; return '_';}Time Complexity: O(n)
Space Complexity: O(1)
Problem Statement: You can climb 1 or 2 steps. How many distinct ways to climb n stairs?
Example:
Input: n = 4Output: 5Solution (Java):
public int climbStairs(int n) { if (n <= 2) return n; int a = 1, b = 2; for (int i = 3; i <= n; i++) { int c = a + b; a = b; b = c; } return b;}Time Complexity: O(n)
Space Complexity: O(1)
Solution:
1NF: atomic values. 2NF: no partial dependency. 3NF: no transitive dependency.
Answer: 3NF
Solution:
Unbalanced partitions (already sorted with bad pivot) → O(n²).
Answer: O(n²)
Solution:
TCP is connection-oriented; UDP is connectionless.
Answer: TCP
Solution:
Each step halves the search space → O(log n).
Answer: O(log n)
Hiring volume
Salary packages
Question difficulty
Based on candidate experiences from 2024 Microsoft interviews:
2024 Interview Process:
Common 2024 Interview Topics:
2024 Interview Questions Examples:
Success Tips:
Difficulty Rating: 3.1/5
For detailed interview experiences, visit Microsoft Interview Experience page.