Microsoft Corporation
Proud winner of ABECA 2024 - AmbitionBox Employee Choice Awards
Filter interviews by
Traverse through 2D array consisting of 0s and 1s. 1 -> Infected and 0-> non-infected. Find the time needed to make entire array affected.
Brute-Force and BFS/DFS approach
Create System design for image storage and retrieval process with cache and DB error handling approach
I applied via Company Website and was interviewed in Nov 2021. There was 1 interview round.
I was interviewed in Jan 2021.
Round duration - 75 minutes
Round difficulty - Hard
This round was scheduled in the evening hours and all the participants were required to fill a form which was shared 2 days prior to the test date. This form was filled out probably for the security reasons and to ensure that no one disinterested participant gives the test.
Given a binary tree with N
nodes, determine whether the tree is a Binary Search Tree (BST). If it is a BST, return true
; otherwise, return false
.
A binary search tree (BST)...
Validate if a given binary tree is a Binary Search Tree (BST) or not.
Check if the left subtree of a node contains only nodes with data less than the node's data.
Check if the right subtree of a node contains only nodes with data greater than the node's data.
Ensure that both the left and right subtrees are also binary search trees.
Given a string A
consisting of lowercase English letters, determine the length of the longest palindromic subsequence within A
.
Find the length of the longest palindromic subsequence in a given string.
Use dynamic programming to solve this problem efficiently.
Create a 2D array to store the lengths of palindromic subsequences for different substrings.
Fill the array diagonally based on the characters in the string.
Return the length of the longest palindromic subsequence for each test case.
Round duration - 45 minutes
Round difficulty - Medium
There was only one female interviewer for this round. She continuously interacted with me and was giving me some good situational problems that were not very easy to answer. Basically those were open-minded questions which can be answered both ways and that's why I found it quiet hard as per my nature but at the end things went well for me.
Tip 1 : Practice all DSA questions from interview bit
Tip 2 : Do Atleast 3 project one should be major, if it's in web dev it would be beneficial.
Tip 3 : Should be good in communication skills
Tip 1 : Not more than 1 page
Tip 2 : Have atleast 3 projects with some achievement in coding contest and your coding handle should be mentioned like codechef, codeforces etc
Tip 3 : Try to keep only those things in resume in which you find yourself comfortable with
What people are saying about Microsoft Corporation
I was interviewed in May 2021.
Round duration - 60 Minutes
Round difficulty - Medium
2 coding questions were asked
Given a matrix of size N * M, your task is to count the number of squares present within it.
Since the count can be extremely large, the result should be computed modulo 109 + 7...
Count the number of squares in a given matrix modulo 10^9 + 7.
Iterate through all possible square sizes from 1 to min(N, M)
For each square size, count the number of squares that can fit in the matrix
Return the total count modulo 10^9 + 7
You are provided with an integer array ARR
of length 'N'. Your objective is to determine the first missing positive integer using linear time and constant space. T...
Find the smallest positive integer missing from an array of integers.
Iterate through the array and mark positive integers as visited by changing the sign of the corresponding index.
After marking all positive integers, iterate again to find the first positive integer with a positive value.
Return the index of the first positive integer found plus one as the answer.
Round duration - 100 Minutes
Round difficulty - Medium
There was 1 coding question, and questions on CN, DBMS, OS and system design and also my resume.
You are given a non-negative integer represented as a string num
and an integer k
. Your task is to determine the smallest possible integer by removing exactly k
digits fr...
Given a non-negative integer as a string and an integer k, find the smallest possible integer after removing k digits.
Use a stack to keep track of the digits in non-decreasing order from left to right.
Pop elements from the stack if the current digit is smaller than the top of the stack and k is greater than 0.
Handle edge cases like leading zeros and ensuring the final result is not an empty string.
Example: For num = "1...
Round duration - 40 Minutes
Round difficulty - Medium
Interviewer was quite experienced he asked me 1 coding question and asked questions about college and resume
You are provided with a string 'S'. The task is to determine the length of the longest duplicate substring within this string. Note that duplicate substrings ...
Find the length of the longest duplicate substring in a given string.
Use binary search to find the length of the longest duplicate substring.
Implement Rabin-Karp algorithm for efficient substring search.
Consider using a rolling hash function for substring comparisons.
Tip 1 : Try to cover all most common questions of all topics(atleast 300+ questions)
Tip 2 : Try to see as many interview experience as possible of the company you are applying.
Tip 3 : Try to give atleast 2-3 mock interview before main interview
Tip 1 : Try to put competitive programming ranks if possible or Coding Ninjas Certificate, or any proof that you do programming regularly.
Tip 2 : Try to add atleast 2 projects, and study about those projects well.
Microsoft Corporation interview questions for popular designations
I applied via Company Website and was interviewed before Dec 2021. There were 2 interview rounds.
I will listen to their concerns, empathize with them, and offer a solution to their problem.
Acknowledge their frustration and apologize for any inconvenience caused
Listen actively to their concerns and let them vent their frustrations
Empathize with them and show that you understand their perspective
Offer a solution to their problem and assure them that you will do everything possible to resolve the issue
Follow up with ...
Get interview-ready with Top Microsoft Corporation Interview Questions
I was interviewed in Dec 2020.
Round duration - 60 Minutes
Round difficulty - Easy
There were 3 coding questions of various difficulty level
Design a data structure for a Least Recently Used (LRU) cache that supports the following operations:
1. get(key)
- Return the value of the key if it exists in the cache; otherw...
Design a Least Recently Used (LRU) cache data structure that supports get and put operations with capacity constraint.
Implement a doubly linked list to maintain the order of keys based on their recent usage.
Use a hashmap to store key-value pairs for quick access and update.
When capacity is reached, evict the least recently used item before inserting a new item.
Update the order of keys in the linked list whenever a key ...
You are given an array 'ARR'
of size 'N'
consisting of positive integers. Your task is to determine the minimum number of operations required to make all elements in t...
Determine minimum operations to make all array elements equal using addition, subtraction, multiplication, or division.
Iterate through array to find the maximum and minimum elements.
Calculate the difference between maximum and minimum elements.
The minimum number of operations needed is the difference between the maximum and minimum elements.
Given an integer N
, find all possible placements of N
queens on an N x N
chessboard such that no two queens threaten each other.
A queen can attack another queen if they ar...
The N Queens Problem involves finding all possible placements of N queens on an N x N chessboard without threatening each other.
Use backtracking algorithm to explore all possible configurations
Check if the current placement is safe by verifying rows, columns, and diagonals
Print valid configurations where queens do not attack each other
Round duration - 80 Minutes
Round difficulty - Easy
Asked various coding questions and their implementations
You are provided with a 2-dimensional matrix having N
rows and M
columns, containing only 1s (land) and 0s (water). Your goal is to determine the number of islands in t...
Count the number of islands in a 2D matrix of 1s and 0s.
Use Depth First Search (DFS) or Breadth First Search (BFS) to traverse the matrix and identify connected groups of 1s.
Maintain a visited array to keep track of visited cells to avoid redundant traversal.
Increment the island count each time a new island is encountered.
Reverse a given stack of integers using recursion. You must accomplish this without utilizing extra space beyond the internal stack space used by recursion. Additionally, you ...
Reverse a given stack of integers using recursion without using extra space or loops.
Use recursion to pop all elements from the original stack and store them in function call stack.
Once the stack is empty, push the elements back in reverse order using recursion.
Make use of the top(), pop(), and push() stack methods provided.
Example: If the input stack is [1, 2, 3], after reversal it should be [3, 2, 1].
You are given an integer array 'ARR' of size 'N' and an integer 'S'. Your task is to find and return a list of all pairs of elements where each sum of a pair equals 'S'.
Find pairs of elements in an array that sum up to a given value, sorted in a specific order.
Iterate through the array and for each element, check if the complement (S - current element) exists in a set.
If the complement exists, add the pair to the result list.
Sort the result list based on the criteria mentioned in the problem statement.
Round duration - 30 Minutes
Round difficulty - Easy
HR was very friendly
Tip 1 : Don't lie over your resume
Tip 2 : Practice regularly
Tip 3 : Revision is the key
Tip 1 : Right only correct info, Don't fake it
Tip 2 : Keep it precise and concise.
I was interviewed in Dec 2020.
Round duration - 120 Minutes
Round difficulty - Easy
Total 3 coding questions were there, out of which I don't remember the last one.
Ninja is organizing a dance competition and wants to pair participants using a unique method. Each participant chooses a number upon entry, and Ninja selects a nu...
Find the number of distinct pairs of participants with a given difference in their chosen numbers.
Iterate through the list of numbers and check for pairs with the required difference 'K'.
Use a hash set to keep track of unique pairs to avoid counting duplicates.
Return the size of the hash set as the number of distinct pairs.
You are given two strings 'A' and 'B'. While string 'A' is constant, you may apply any number of left shift operations to string 'B'.
Your task is to calcu...
Calculate minimum left shift operations to achieve longest common prefix between two strings.
Apply left shift operations to string B to find longest common prefix with string A
Count number of shifts needed to achieve longest common prefix
Handle circular rotation of characters in string B
Return minimum number of left shift operations for each test case
Round duration - 60 Minutes
Round difficulty - Easy
Given a square matrix 'MATRIX' of non-negative integers, rotate the matrix by 90 degrees in an anti-clockwise direction using only constant extra space.
Rotate a square matrix by 90 degrees in an anti-clockwise direction using constant extra space.
Iterate through each layer of the matrix from outer to inner layers
Swap elements in groups of 4 to rotate the matrix
Handle odd-sized matrices separately by adjusting the loop boundaries
Given an array/list ARR
consisting of integers where each element is either 0, 1, or 2, your task is to sort this array in increasing order.
The input sta...
Sort an array of 0s, 1s, and 2s in increasing order.
Use a three-pointer approach to partition the array into sections for 0s, 1s, and 2s.
Iterate through the array and swap elements based on their values and the pointers.
After sorting, the array will have 0s at the beginning, followed by 1s, and then 2s.
Round duration - 60 Minutes
Round difficulty - Easy
This was HR + Technical round
He started with questions on projects and Os and Dbms and Oops
Then asked one coding question
You are given a non-empty grid that consists of only 0s and 1s. Your task is to determine the number of islands in this grid.
An island is defined as a group of 1s (re...
The task is to determine the number of islands in a grid of 0s and 1s connected horizontally, vertically, or diagonally.
Iterate through the grid and perform depth-first search (DFS) to find connected 1s forming islands
Mark visited cells to avoid counting the same island multiple times
Count the number of islands found during DFS traversal
Tip 1 : Maintain At least 2 projects in your resume.
Tip 2 : Be Confident enough
Tip 3 : Solve lot of problems
Tip 1 : Achievements are good to have
Tip 2 : You should be able to answer all the questions related to skills in the resume.
I was interviewed in Nov 2020.
Round duration - 100 minutes
Round difficulty - Easy
3 coding Questions:
1st : Easy question based on simple loop iteration
2nd : Medium level Data structure question
3rd : Medium level tree question(where we were not just required to complete the tree function but to build whole best from
scratch)
It was conducted from 1:30 - 3:00 pm.
The coding platform was very good (as auto indentation and auto completion of brackets were there) having camera on.
Ninja is eager to listen to stories from the renowned Storyteller of Ninjaland. The storyteller charges 'Y' coins per story. However, for every set of 'X' stories told, N...
Calculate the total number of stories a ninja can hear from a storyteller based on given conditions and constraints.
Calculate the number of stories Ninja can buy with available coins and without free stories.
Calculate the number of free stories Ninja can get based on the number of stories bought.
Add the total number of bought and free stories to get the final result.
You are tasked to help a friend with stock trading for the next 'N' days. He can either buy or sell a stock, with the condition that he can complete at most 2 transact...
Determine maximum profit from at most 2 stock transactions over 'N' days.
Iterate through the prices array to find the maximum profit from 2 transactions.
Keep track of the maximum profit by buying and selling stocks at the right times.
Consider edge cases like when there are no profitable transactions.
Round duration - 90 minutes
Round difficulty - Easy
This was a completely technical coding round where I was asked to solve the problems of data structures.
Given an integer matrix with dimensions m x n
, determine the minimum cost required to reach from the cell (0, 0) to the cell (m-1, n-1).
You are allowed to move from a...
The problem involves finding the minimum cost path in a matrix by moving right, down, or diagonally down-right.
Use dynamic programming to keep track of the minimum cost at each cell
Consider the three possible directions for movement and calculate the cost accordingly
Start from the top-left cell and iterate through the matrix to find the minimum cost path
You are given a binary tree consisting of 'N' unique nodes and a start node where the burning will commence. The task is to calculate the time in minutes required to completely b...
Calculate the time in minutes required to completely burn a binary tree starting from a given node.
Traverse the tree to find the start node and calculate the time for fire to spread to all nodes
Use a queue to keep track of nodes to be burned next
Increment time for each level of nodes burned until the entire tree is burnt
Round duration - 20 minutes
Round difficulty - Easy
It was held on Google meet platform
The interviewer was very experienced person and was very nice too.
He made me comfortable by first introducing himself in a very detailed way and then asking me mine introduction
Since I feel that his internet connection was not very good so he turned off his camera but I decided not to turn off mine as in online interviews your face reviles your confidence
the interviewer mostly asked me questions about my interests in technical field and the project that I have done
Tip 1 : Practice atleast(easy and medium questions from leetcode under(Top Interview Questions)) and all the questions from Gfg under(must to do coding questions for interviews))
Tip 2 : Don't learn each and every question you solved but try to solve question in a way that you can solve its variation during interviews
Tip 3 : Do one project(one is enough) which you can explain with full technical details (why you used this technology, and all logics you applied in implementation)
Tip 1 : Have at least one project which you have made yourself and you should know all the technical questions related to that project (I feel project domain hardly matters like web development or android or ML/AI)
Tip 2 : You should Put only those skills in resume :
1. Which the company requires (eg if you know company doesn't require Networking domain knowledge so
don't include it unnecessary if you are not much confident in it)
2. For on campus internships resume shortlisting is very easy so don't add anything unnecessary which might cause you pain during interview.
I was interviewed in Nov 2020.
Round duration - 90 minutes
Round difficulty - Medium
It started in the evening from around 6 pm and the total duration was 90 minutes. There were 3 coding questions of medium difficulty level. I think from a set of 10-12 questions, each student was given 3 questions randomly from that set. So it was somewhat luck dependent too if you get easy or difficult questions. Tab switching was not allowed during the test, also it was proctored through webcam.
Given a string A
consisting of lowercase English letters, determine the length of the longest palindromic subsequence within A
.
The problem involves finding the length of the longest palindromic subsequence in a given string of lowercase English letters.
Iterate through the string and create a 2D array to store the lengths of palindromic subsequences for each substring.
Use dynamic programming to fill the array based on the characters in the string.
Consider the base cases where the length of the substring is 1 or 2.
Update the array based on wheth...
You are given an encrypted string where repeated substrings are represented by the substring followed by its count. Your task is to find the K'th character of the d...
Given an encrypted string with repeated substrings represented by counts, find the K'th character of the decrypted string.
Parse the encrypted string to extract substrings and their counts
Iterate through the decrypted string to find the K'th character
Handle cases where counts are more than one digit or in parts
Given an array arr
of length N
consisting of integers, find the sum of the subarray (including empty subarray) with the maximum sum among all subarrays.
Find the sum of the subarray with the maximum sum among all subarrays in an array of integers.
Iterate through the array and keep track of the maximum sum subarray seen so far.
Use Kadane's algorithm to efficiently find the maximum subarray sum.
Consider the case where all elements in the array are negative.
Handle the case where the array contains only one element.
Round duration - 50 minutes
Round difficulty - Medium
It was held on the Microsoft teams platform. It started at 5 pm in the evening and lasted till around 5:50 pm. It started with me giving a general introduction about what I had done till now in my college. After that, he started with the coding problems.
Determine the total area covered by two given rectangles on a 2-D coordinate plane, which may have an overlapping area.
The first line conta...
Calculate the total area covered by two overlapping rectangles on a 2-D coordinate plane.
Parse input coordinates for two rectangles
Calculate the area of each rectangle
Find the overlapping area by determining the intersection of the rectangles
Calculate the total area by adding the areas of both rectangles and subtracting the overlapping area
Mutexes and semaphores are synchronization mechanisms used in concurrent programming to control access to shared resources.
Mutexes are used to provide mutual exclusion, allowing only one thread to access a resource at a time.
Semaphores can be used to control access to a resource by multiple threads, with the ability to allow a certain number of threads to access it simultaneously.
Mutexes are binary semaphores with a lo...
Round duration - 50 minutes
Round difficulty - Easy
The pattern was similar to the previous round. I started with my general introduction after which he proceeded to problem-solving. Also, there was some discussion about the projects I had done previously and also about my previous internship experience.
Given an array Arr
consisting of N
integers, find all distinct triplets in the array that sum up to zero.
An array is said to have a triplet {Arr[i], Arr[j],...
Find all distinct triplets in an array that sum up to zero.
Use a nested loop to iterate through all possible triplets.
Sort the array to easily identify duplicates and skip them.
Use two-pointer technique to find the remaining element for each pair.
Handle edge cases like duplicates and empty list of triplets.
Return the list of triplets found in any order.
Tip 1 : Focus on basic concepts while studying algorithms and data structures. On the other hand, there is some amount of mugging required in other topics like operating systems and OOPS.
Tip 2 : Your resume should be catchy and impressive. The recruiters will not be looking at your resume for more than 30-40 seconds, so try to mention some numbers (ranks in some coding events, GPA) which can impress the recruiters.
Tip 3 : For the last few days before your interviews, it is advised to read some previous interview experiences of the company for which you are about the give the interview.
Tip 1 : Try to mention some numbers on your resume like ranks in various coding events, or engineering entrance exams because this makes it somewhat catchy.
Tip 2 : Try to know everything you've written on your resume. So, don't try to put false things as it can go against you in the interview.
I was interviewed before May 2021.
Round duration - 60 Minutes
Round difficulty - Medium
It was a hiring drive for women. Interviewer was experienced person.
Given the preorder and inorder traversal sequences of a binary tree, your task is to construct the binary tree using these traversals.
Th...
Yes, it is possible to achieve a solution with O(N) time complexity using a hashmap to store the indices of elements in the inorder traversal.
Use a hashmap to store the indices of elements in the inorder traversal for quick lookup.
Recursively build the binary tree by selecting the root node from the preorder traversal and finding its index in the inorder traversal.
Divide the inorder traversal into left and right subtre...
Round duration - 60 Minutes
Round difficulty - Medium
You are presented with a list of financial transactions among ‘n’ friends, where each transaction specifies who pays whom and how much. The objective is to minimize the cash...
The problem involves minimizing cash flow among friends by reorganizing debts through direct transfers or reducing total transactions.
Given a list of financial transactions among 'n' friends, where each transaction specifies who pays whom and how much.
Objective is to minimize the cash flow among the friends by reorganizing debts through direct transfers or reducing total transactions.
Output a 2-D matrix showing the opt...
Round duration - 60 Minutes
Round difficulty - Medium
Given a positive integer N
, your task is to determine the number of strings of length N
that can be created using only the characters 'a', 'b', and 'c'. The strings must a...
The problem involves determining the number of strings of length N that can be created using only the characters 'a', 'b', and 'c', with constraints on the number of 'b' and 'c' allowed.
Use dynamic programming to count the number of valid strings for each length N.
Consider the constraints on the number of 'b' and 'c' allowed in each string.
Implement a function to calculate the result modulo 1000000007.
For N = 2, valid ...
Round duration - 60 Minutes
Round difficulty - Medium
Ninja is exploring the data structure of trees and while learning about Binary Search Trees (BST), she created her own. However, she unknowingl...
Identify and reverse the swap in a Binary Search Tree to recover the original structure.
Identify the two nodes that are swapped in the Binary Search Tree.
Swap the two nodes to restore the Binary Search Tree integrity.
Ensure that the left subtree of a node contains only nodes with data less than the node's data, and the right subtree contains only nodes with data greater than the node's data.
Round duration - 60 Minutes
Round difficulty - Medium
Hiring manager round
Given the schedule of N meetings with their start time Start[i]
and end time End[i]
, you need to determine which meetings can be organized in a single meeting room such ...
Given N meetings with start and end times, find the maximum number of meetings that can be organized in a single room without overlap.
Sort the meetings based on their end times.
Iterate through the sorted meetings and select the first meeting that doesn't overlap with the previous one.
Repeat the process until all meetings are considered.
Return the selected meetings in the order they are organized.
Tip 1 : Practice leetcode
Tip 2 : Study low level and high level design properly by working on some real examples
Tip 1 : Be concrete on the projects and experience
Tip 2 : Mention all languages and frameworks you have worked on so far
Some of the top questions asked at the Microsoft Corporation interview -
The duration of Microsoft Corporation interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 375 interviews
Interview experience
based on 1.7k reviews
Rating in categories
Software Engineer
2k
salaries
| ₹0 L/yr - ₹0 L/yr |
Senior Software Engineer
1.1k
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Engineer2
1k
salaries
| ₹0 L/yr - ₹0 L/yr |
Software Developer
698
salaries
| ₹0 L/yr - ₹0 L/yr |
Consultant
602
salaries
| ₹0 L/yr - ₹0 L/yr |
Amazon
Deloitte
TCS