Hey Everyone!
Yesterday, I completed my full loop onsite interview for the Meta E4 (London) role.
Years of Experience: 2.0 years
Phone Screen
Diameter of Binary Tree
Vertical Order Traversal of a Binary Tree
I solved both problems using the optimal approach. Within a couple of hours, I received an email confirming I had passed and was moving forward to the onsite interviews.
Rating: Hire
System Design
Problem: Design an Ad Click Aggregator
I followed the HelloInterview format and discussed topics like:
I struggled a bit with the back-of-the-envelope estimation, especially around DAU, but I still provided a rough estimate.
Rating: Hire
DSA Round 1
Valid Palindrome II + follow-up: Removing k characters
Course Schedule II (solved using Topo Sort)
I completed both questions with the optimal approach and discussed:
Time & Space Complexity
Dry runs for given testcase
Rating: Strong Hire
DSA Round 2
This round where I feel something went wrong like interviewer didn’t give the problem statement instead of that he verbally explained the question in very vague manner,I struggled to understand the problem statement anyhow I understand and verify the problem with taking one input output with my own and he confirmed for that I got asked this question intially Input is an integer array, and it should return a local minimum element. Local minimum element is the element from the array that is less or equal to its neighbors
Here's the solution I wrote:
class Solution {
public:
int findLocalMin(vector<int>& nums) {
int n = nums.size();
int left = 0, right = n - 1;
while (left < right) {
int mid = left + (right - left) / 2;
if (nums[mid] > nums[mid + 1]) {
left = mid + 1;
} else {
right = mid;
}
}
return nums[left];
}
};Dry run the code with my own testcase but interviwer ask do you need any other testcase to check I said it seems fine for me and we moved to second question Merge 3 sorted arrays and remove duplicates.I used a 3 pointer approach and dry run completely and still we have some time left so he asked the follow up for first question
Follow-Up:
the local minimum must be strictly less than its neighbors. I suggested modifying the final condition like this:
if ((left == 0 || nums[left] < nums[left - 1]) &&
(left == n - 1 || nums[left] < nums[left + 1])) {
return nums[left];
}But the interviewer pointed out this condition wasn’t part of my original solution, and I admitted I had missed this edge case earlier. I was asked to integrate this logic into the binary search loop, but unfortunately, I froze at that point, and time ran out.
Rating: Lean Hire
Behavioral Round
Conflict resolution
Proud project
Areas of improvement
Adapting to changing requirements
Rating: Hire
What are my chances for an offer?
Despite the “Lean Hire” in one round, the rest of the interviews went well with Hire and Strong Hire ratings, including System Design. I'm hoping for a positive outcome!
Any thoughts or insights from those who’ve been through the process would be appreciated!