I applied online and was approached by HR to initiate the interview process. My next interview was a technical one, and I had hoped to clear it, but I failed.
The interviewer was helpful but failed to see my perspective. I initially approached the problem using an algorithm that I thought I knew, aiming for O(N) time complexity. However, I got confused. About 15 minutes into the interview, I asked whether I could use another approach, and this is when I started to get shaky.
I then proposed a solution in O(N^2) time. The interviewer asked to make it faster. Using hash tables, I improved the time complexity to O(N) with O(N) space. With a hint from the interviewer, I ultimately solved it in O(N) time with constant space, and then began writing the code.
During the entire interview session, I accidentally kept confusing things (for instance, calling a node a root node because I was thinking in terms of sub-trees and recursively). This generally doesn't happen, even when working under stress. I felt the interviewer grossly underestimated me, but I blame myself for that.
If there is anything I would do differently, it would be to use the easiest approach to solve the question first. A positive start boosts confidence.
So, blurt out whatever solution you think should work. There may not be enough time to derive your approach. And be confident.
Sometimes, you can trick the interviewer into believing that you know exactly what to do, even when you don't (if you are close enough).
A modification of the lowest common ancestor problem (bonus points if you answer using RMQs).
The following metrics were computed from 2 interview experiences for the Meta Software Engineering New Grad role in Germany.
Meta's interview process for their Software Engineering New Grad roles in Germany is fairly selective, failing a large portion of engineers who go through it.
Candidates reported having very good feelings for Meta's Software Engineering New Grad interview process in Germany.