Microsoft Corporation
Proud winner of ABECA 2024 - AmbitionBox Employee Choice Awards
Filter interviews by
Math and logical questions
Medium - hard level questions of leetcode
I applied via Company Website and was interviewed in Dec 2023. There were 2 interview rounds.
2 ques med leetcode ques
The right view of a binary tree shows the nodes that are visible when viewing the tree from the right side.
The right view of a binary tree can be obtained by performing a level order traversal and keeping track of the rightmost node at each level.
Nodes that are visible from the right side are the ones that are the rightmost at their respective levels.
For example, in the binary tree: 1 / \ 2 3 / \ /...
I applied via Campus Placement and was interviewed before Jul 2022. There were 3 interview rounds.
Easy array, string based questions
To change permissions for a file, you can use the chmod command in the terminal.
Use the chmod command followed by the permission code and the file name
Permission codes include 'u' for user, 'g' for group, and 'o' for others, along with 'r' for read, 'w' for write, and 'x' for execute
For example, to give read and write permissions to the user for a file named 'example.txt', you can use 'chmod u+rw example.txt'
Given a Y-linked list, find the node at the intersection point.
Traverse both branches of the Y-linked list and compare nodes.
Use a hash table to store visited nodes and check for intersection.
If one branch is longer, traverse it until it matches the length of the other branch.
Count the occurrences of each character in a given string including special characters.
Create test cases for empty string
Test for string with only one character
Test for string with all characters being the same
Test for string with all characters being different
Test for string with special characters
Remove duplicate characters from a string while preserving order.
Create an empty string to hold the result.
Iterate through each character in the input string.
If the character is not already in the result string, add it.
Return the result string.
The complexity of the codes depends on the number of operations and loops used.
The first code has a complexity of O(n) as it uses a single loop to iterate through the array.
The second code has a complexity of O(n^2) as it uses nested loops to compare each element with every other element in the array.
The complexity of a code can also depend on the type of operations used, such as sorting or searching.
Complexity can be ...
I have a strong academic background with a focus on computer science and engineering.
Graduated with a Bachelor's degree in Computer Science from XYZ University
Completed a Master's degree in Electrical Engineering from ABC University
Took courses in data structures, algorithms, programming languages, and computer networks
Participated in various coding competitions and hackathons
Maintained a GPA of 3.8 throughout my acade
I am working on this project out of interest and I believe I can improve it by implementing more advanced algorithms and incorporating user feedback.
Implement more advanced algorithms to improve accuracy
Incorporate user feedback to enhance user experience
Optimize code for faster performance
Add more features to increase functionality
My peers would describe me as a reliable and hardworking team player with excellent communication skills.
Reliable and consistent in meeting deadlines and completing tasks
Collaborative and supportive of team members
Clear and effective communicator, both verbally and in writing
Open to feedback and willing to learn and improve
Positive attitude and strong work ethic
I am currently working on a web application for a client in the e-commerce industry.
The project involves developing a user-friendly interface for customers to browse and purchase products.
I chose this project because I have experience in web development and I find the e-commerce industry interesting.
I am also excited about the challenge of creating a seamless checkout process for customers.
The project requires collabor...
I am constantly seeking feedback and learning new skills to improve my performance.
Regularly seeking feedback from colleagues and supervisors
Attending workshops and training sessions to learn new skills
Setting personal goals and tracking progress towards them
Reflecting on past experiences and identifying areas for improvement
Reading industry publications and staying up-to-date with trends
The desire to learn and grow keeps me motivated.
Setting achievable goals
Celebrating small wins
Surrounding myself with positive people
Taking breaks and practicing self-care
Remembering my purpose and passion
Continuously learning and seeking new challenges
My professors would describe me as hardworking and detail-oriented. They have pointed out my weakness in public speaking.
Professors would describe me as hardworking and detail-oriented
Weakness in public speaking has been pointed out
Received positive feedback on assignments and projects
Collaborates well with classmates and participates in group discussions
Short term goal is to learn and contribute to the company. Long term goal is to grow professionally and take on leadership roles.
Short term goal: Learn new skills and technologies
Short term goal: Contribute to the company's success
Long term goal: Grow professionally and take on leadership roles
Long term goal: Build a strong network in the industry
Long term goal: Achieve financial stability
Microsoft Corporation interview questions for designations
Top trending discussions
To determine if a point is inside a polygon, use the ray casting algorithm.
Create a line from the point to a point outside the polygon
Count the number of times the line intersects with the polygon edges
If the count is odd, the point is inside the polygon; otherwise, it is outside
The four storage classes in C are auto, register, static, and extern.
Auto: default storage class for all local variables
Register: used to define local variables that should be stored in a register instead of RAM
Static: used to define local variables that retain their value between function calls
Extern: used to declare a global variable that is defined in another file
i is stored in global data segment, j is stored in stack, k is stored in heap.
i is a global variable and is stored in the global data segment
j is a local variable and is stored in the stack
k is a pointer variable and is stored in the stack, while the memory it points to is allocated on the heap using malloc()
Use a hash table to store the words and check for existence in constant time.
Create a hash table with the words as keys and a boolean value as the value.
For each new word, check if it exists in the hash table. If it does, it has appeared before. If not, add it to the hash table.
Alternatively, use a set data structure to store only the unique words and check for existence in the set.
I appeared for an interview before Jan 2021.
Round duration - 60 Minutes
Round difficulty - Medium
The interviewer asked me 2 questions related to DS/Algo in this round . Both the questions were of Easy-Medium difficulty and I was also required to code them in a production ready manner.
You are provided with a binary tree consisting of N
nodes where each node has an integer value. The task is to determine the maximum sum achievable by a...
Find the maximum sum achievable by a simple path between any two nodes in a binary tree.
Traverse the binary tree to find all possible paths and calculate their sums.
Keep track of the maximum sum encountered during traversal.
Consider paths that may include the same node twice.
Implement a recursive function to explore all possible paths.
Handle cases where nodes have negative values.
Given two arrays A
and B
with sizes N
and M
respectively, both sorted in non-decreasing order, determine their intersection.
The intersection of two arrays in...
The problem involves finding the intersection of two sorted arrays efficiently.
Use two pointers to iterate through both arrays simultaneously.
Compare elements at the pointers and move the pointers accordingly.
Handle cases where elements are equal, and update the intersection array.
Return the intersection array as the result.
Round duration - 50 Minutes
Round difficulty - Medium
This round had 2 questions of DS/Algo to solve under 50 minutes and one question related to Operating Systems.
You are provided with an array or list ARR
containing N
positive integers. Your task is to determine the Next Greater Element (NGE) for each element in the array.
T...
Find the Next Greater Element for each element in an array.
Iterate through the array from right to left
Use a stack to keep track of elements with no greater element to the right
Pop elements from the stack until finding a greater element or stack is empty
Given three integers X
, C
, and Y
, where X
is the first term of an arithmetic sequence with a common difference of C
, determine if Y
is part of this arithmetic sequ...
Check if a given number is part of an arithmetic sequence with a given first term and common difference.
Calculate the arithmetic sequence using the formula: nth term = X + (n-1) * C
Check if Y is equal to any term in the sequence to determine if it belongs to the sequence
Return 'True' if Y belongs to the sequence, otherwise return 'False'
Processes are instances of programs in execution, while threads are smaller units within a process that can execute independently.
A process is a program in execution, consisting of code, data, and resources.
Threads are smaller units within a process that can execute independently.
Processes have their own memory space, while threads share the same memory space within a process.
Processes are heavyweight, while threads ar...
Round duration - 50 Minutes
Round difficulty - Medium
This round had 2 questions of DSA of Easy-Medium difficulty and at the end I was asked a Puzzle to check my general problem solving ability.
Given an array/list arr
of size n
, determine the maximum product possible by taking any subset of the array/list arr
. Return the result modulo 10^9+7
since the product ...
Find the maximum product of a subset of an array modulo 10^9+7.
Iterate through the array and keep track of the maximum positive product and minimum negative product encountered so far.
Handle cases where the array contains zeros separately.
Return the maximum product modulo 10^9+7.
Given a complete binary tree with 'N' nodes, your task is to determine the 'next' node immediately to the right in level order for each node in the given tree.
...Implement a function to update 'next' pointers in a complete binary tree.
Iterate level by level using a queue
Connect nodes at each level using 'next' pointers
Handle null nodes appropriately
Ensure the tree is a complete binary tree
Round duration - 50 Minutes
Round difficulty - Medium
This round consisted of 2 questions from DSA where I was first asked to explain my approach to the interviewer with proper complexity analysis and then code the problems. The interviewer was quite friendly and also provided me some hints when I was stuck.
Create a stack data structure that supports not only the usual push and pop operations but also getMin(), which retrieves the minimum element, all in O(1) time complexity witho...
Implement a stack with push, pop, top, isEmpty, and getMin operations in O(1) time complexity without using extra space.
Use two stacks - one to store the actual elements and another to store the minimum element at each level.
When pushing an element, check if it is smaller than the current minimum and update the minimum stack accordingly.
When popping an element, also pop from the minimum stack if the popped element is t...
You are given an integer array arr
of size N
. Your task is to split the array into the maximum number of subarrays such that the first and last occurre...
Given an array, split it into maximum subarrays with first and last occurrence of each element in a single subarray.
Iterate through the array and keep track of the first and last occurrence of each element.
Use a hashmap to store the indices of each element.
Split the array whenever the last occurrence of an element is found.
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
Return all root to leaf node paths in a binary tree with row, col and value.
Traverse the binary tree recursively and keep track of the current path.
When a leaf node is reached, add the path to the result array.
Include row, col and value of each node in the path.
Use an array of strings to store the paths.
To get max value from a stack in O(1), maintain a separate stack to keep track of maximum values.
Create a separate stack to keep track of maximum values
Push the maximum value onto the stack whenever a new maximum is encountered
Pop the maximum value stack whenever the top element of the main stack is popped
Return the top element of the maximum value stack to get the maximum value in O(1)
To get max element from a queue in O(1) time complexity
Maintain a separate variable to keep track of the maximum element in the queue
Update the maximum element variable whenever a new element is added or removed from the queue
Return the maximum element variable when getMax() function is called
Find the Next Greatest Element to the right for each element in an array of strings.
Iterate through the array from right to left
Use a stack to keep track of elements
Pop elements from stack until a greater element is found
If no greater element is found, assign -1
Return the result array
To remove unnecessary parenthesis from an expression, we need to apply a set of rules to identify and eliminate them.
Identify and remove parenthesis around single variables or constants
Identify and remove parenthesis around expressions with only one operator
Identify and remove parenthesis around expressions with operators of equal precedence
Identify and remove parenthesis around expressions with operators of different ...
Find the maximum product of three integers in an array.
Sort the array in descending order.
Check the product of the first three numbers and the product of the first and last two numbers.
Return the maximum of the two products.
Find length of longest consecutive sub array forming an AP from given array of integers.
Sort the array in ascending order
Iterate through the array and find the longest consecutive sub array forming an AP
Use a variable to keep track of the length of the current consecutive sub array forming an AP
Use another variable to keep track of the length of the longest consecutive sub array forming an AP seen so far
I appeared for an interview before Sep 2020.
Round duration - 90 mintues
Round difficulty - Easy
Timing it is around 1 pm, Environment is very friendly.
Given an array Arr
consisting of N integers, your task is to find the equilibrium index of the array.
An index is considered as an equilibrium index if the sum of elem...
Find the equilibrium index of an array where sum of elements on left equals sum of elements on right.
Iterate through the array and calculate the total sum of elements.
For each index, calculate the sum of elements on the left and right side and check for equilibrium.
Return the left-most equilibrium index found, or -1 if none exist.
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 end times.
Iterate through the sorted meetings and select the next meeting whose start time is greater than or equal to the end time of the previous meeting.
Return the selected meetings in the order they are organized.
Round duration - 90 mintues
Round difficulty - Hard
Timing it is around 1 pm and Environment is good .
Overloading pre and post-increment operators in OOP involves defining special member functions for the class.
Define member functions for pre-increment (++obj) and post-increment (obj++) operators in the class.
For pre-increment, return a reference to the modified object after incrementing the value.
For post-increment, return a copy of the original object before incrementing the value.
Example: class Counter { int value; ...
Given an array of integers consisting of both positive and negative numbers, find the length of the longest subarray whose sum is zero. This problem will be presented wit...
Find the length of the longest subarray with zero sum in an array of integers.
Iterate through the array and keep track of the running sum using a hashmap.
If the running sum is seen before, it means there is a subarray with zero sum.
Calculate the length of the subarray with zero sum and update the maximum length found so far.
Tip 1 : Practice Atleast 500 Questions
Tip 2 : Do atleast 1 good projects
Tip 3 : You should be able to explain your project
Tip 1 : Have some projects on resume.
Tip 2 : Do not put false things on resume.
Some of the top questions asked at the Microsoft Corporation SDE Intern interview -
based on 3 interviews
Interview experience
based on 1 review
Rating in categories
Software Engineer
2.1k
salaries
| ₹13 L/yr - ₹50.9 L/yr |
Senior Software Engineer
1.2k
salaries
| ₹25 L/yr - ₹95 L/yr |
Software Engineer2
1.1k
salaries
| ₹20.4 L/yr - ₹72 L/yr |
Software Developer
789
salaries
| ₹15 L/yr - ₹54 L/yr |
Consultant
609
salaries
| ₹13 L/yr - ₹36 L/yr |
Amazon
Deloitte
TCS