Propose an algorithm to remove duplicates in very large datset (which cannot be completely stored in memory for processing). Now, give scenarios in which your algorithm fails.
I applied through an employee referral. The process took 1 week. I interviewed at Microsoft (Sídney) in Apr 2013
Interview
My first interview was a brief phone screening which was just about me and my projects.
I was then invited to join an online group meeting on Microsoft Lync which is similar to Skype, during which a member of HR spoke to all candidates. They discussed the next interview process and answered any questions asked by the candidates (there were about 35 candidates).
A date and time was allocated by follow-up email for each of us to attend the interview in the Sydney Office. On my interview day, there was a total of 5 interviewers (all senior members of the Microsoft team), and 5 interviewees. We each received 3-4, 1on1 interviews in separate rooms, rotating between the interviewers. A decision may be made after 3 interviews or you may be given a final 4th interview if needed.
I went through a total of 4 interviews, 45 minutes each with 15 minute break in-between. The breaks were spent with the other candidates and a member of the HR who discussed about Microsoft’s work and workplace.
The interviews generally went like so:
First 5-15 minutes:
• The interviewer introduces themselves and their job.
• Asks about you, your projects and your past work (basically your resume).
Next 25-35 minutes:
• Interviewer gives you 1-2 problems, you are to provide your implementation on the white board.
• Interviewer asks you to give test cases to your implementation.
Final 5 minutes:
• Any questions you may have for the interviewer.
My Interview Questions:
1. Write a function to determine if a string is a Palindrome
2.
a. Give a list of expected functionality for the “Linked List” data structure
b. Write a function to reverse a Linked List
3.
a. Write a function to determine if a number is prime.
b. Write a function to reverse an integer (i.e. 123 = 321), with O(1) space complexity.
c. Write a function to round a float to the nearest integer (i.e. 3.14 = 3, 3.56 = 4).
4. Write a function to print all paths of a binary tree to a certain depth/length.
Example,
Input:
The following binary tree, searching to a depth of 3
5
/ \
3 7
/ \ / \
1 2 5 8
Output:
5-3-1
5-3-2
5-7-5
5-7-8
Interview questions [2]
Question 1
Write a function to reverse an integer (i.e. 123 = 321), with O(1) space complexity.
I applied through college or university. I interviewed at Microsoft
Interview
I communicated via email with an interview scheduler to fly out to Redmond. I had already passed the first round at an on-campus interview, so the on-site interview was scheduled within a couple of weeks.
For the actual interview day, it started with the HR rep asking basic questions to make sure you fit the position at all, and then she directed me to my first interviewer. The interviewers would then take you to the next one in your schedule, and they would talk about you to each other in between. FYI, if you're honest to your HR rep about any concerns you might have about the position, the other interviewers will see them and do their best to persuade you otherwise.
The interview questions were not as bad as I worried - the questions were very reasonable and could definitely be done in the interview time. There were some things that they asked me about that I freely admitted to not knowing, and then they'd give me a question about it and see if I could figure things out without the prior knowledge. I definitely got the impression that for fresh out of college hires, they don't expect comprehensive knowledge of anything, just raw talent and an ability to think through things. Just be relaxed and enthusiastic and connect to the interviewers.
The interviewers were all very friendly and genuinely enthusiastic about their work, and by the last interview they were very clear that they liked me. I received the offer the next day.
Interview questions [1]
Question 1
I don't want to list the specific questions, but I thought all the questions were very fair - some design problems, some algorithms, some data structures, pointers.