Google Interview Experience L4 | More rounds/Rejected
Summary
Had a Google interview experience at the L4 level, with 2 technical rounds and 1 Googliness round. Despite a strong performance in the first technical round, the second round had issues with data structure selection, leading to potential rejection or additional rounds.
Full Experience
Started with an HR call that covered basic time and space complexity questions. The telephonic screening began with a sliding window problem involving fountains and safe places. I explained a brute force solution and then moved to an optimized approach using a monotonic stack and next greater element concepts. However, I couldn't fully fix the bug in the optimized solution.
The interview structure included 2 technical rounds and 1 Googliness round. The first technical round went well with a problem similar to Merge Intervals, solved in 15–30 minutes, and a follow-up question about finding Maximum among Minimums using a Deque in Java. The interviewer was satisfied but noted we didn't have time to code the solution.
The second technical round was challenging. The problem involved determining if a server times out based on RPC logs with timestamps. I implemented an optimal solution using a HashMap to track start events and check timeouts. However, the interviewer wanted a different approach involving a LinkedHashMap to manage insertion order and timeouts efficiently. I could only explain my idea in pseudocode, which led to a poor performance in this round.
The Googliness round went well, similar to Amazon's behavioral rounds. The outcome was uncertain, with feedback indicating an incorrect data structure choice in one of the technical rounds, possibly leading to rejection or additional rounds.
Interview Questions (3)
Given two arrays, return the safe places. The problem involved determining safe positions based on fountain coverage.
Problem was similar to Merge Intervals, but with an additional requirement to find the maximum among minimums. The solution required an optimal approach using a Deque in Java.
Given start and end logs of RPC server events with timestamps, return true as soon as a server times out. If no server times out after processing all logs, return false.