Microsfot SWE New Grad Remote Interview experience
Anonymous User
486

I’ve gained a lot from this community, so I wanted to give back by sharing my recent interview experience with Microsoft. I applied a few times with referrals, and one of those applications led to a technical interview. During this interview, I was given two coding problems, both involving medium-to-hard dynamic programming. One of the problems was this one (https://www.reddit.com/r/codinginterview/comments/r31yqg/got_this_coding_question_want_to_understand_a/) (I’m not sure if the provided answer is correct, but the question is the same). Unfortunately, I don’t remember the other problem.

Following the technical round, I was invited to the final onsite round, which consisted of three interviews:
1. System Design: I was asked to design WhatsApp or a Voice-over-IP system.
2. Coding Challenge 1: The next problem was similar to this one on LeetCode (https://leetcode.com/problems/word-frequency/description/), where the goal is to calculate word frequency. I solved it in Java, though it would have been easier in Python using the Counter class. The interviewer focused solely on the correct solution, without much interest in clarifying questions or discussing trade-offs, but I ran the code correctly at the end of the interview.
3. Coding Challenge 2: The following problem involved removing duplicate nodes in a binary tree. The key insight here was to look at the children nodes when checking for duplicates, so that once you reach the leaf level, you can remove the pointers to any duplicate child nodes. I wrote out the code, but due to the length of the problem, we didn’t have time to run it.
4. Coding Challenge 3: The last problem was this one (https://leetcode.com/problems/remove-duplicates-from-an-unsorted-linked-list/description/), about removing duplicates from an unsorted linked list. The main technique was similar to the previous problem: by looking ahead one value, you can adjust pointers accordingly to “delete” nodes. The follow-up required implementing the solution without extra memory, which involved checking the entire list for each node. An additional follow-up was for handling a circular linked list, where the answer was to compare memory addresses to identify the starting node at each iteration. We also went through different test cases.

Thanks to everyone in this community for the support!

Comments (2)