Background:
I recently interviewed for a Google Europe L3 Software Engineer position and wanted to share my full experience, along with the questions I received in each round.
Problem:
You are given an array arr. Count the number of ordered pairs (i, j) such that:
a[i] - a[j] = i - j where 0 ≤ i, j < nImportant notes:
(i, j) and (j, i) are counted as different.(i, i) is also a valid pair.Examples:
Input: [2, 4, 6, 5, 9, 9, 11]
Output: 13
Input: [1, 2, 3]
Output: 9Explanation for [1, 2, 3]:
Verdict: Postion (Recruiter didn't tell exact feedback)
Problem:
You are given a directed graph where each edge has a security level.
For any path from startNode to endNode, the security level of the path is:
max(edge security levels in that path)Find the path from startNode to endNode whose security level is minimized.
Verdict: Strong hire
Problem:
You are given a data size and must split it into a minimum number of packets, where each packet has a maximum capacity.
If multiple solutions require the same number of packets, return the one where:
the maximum packet size among all packets is minimized.Verdict: Strong hire
Problem:
Given a list of events sorted by timestamp.
Each event has a unique ID and timestamp, and you are also given a timeout value.
Determine if there exists an event where:
end_time - start_time > timeoutFollow-ups:
Verdict: Strong hire
All behavioral questions came from this post:
https://leetcode.com/discuss/post/5963463/googlyness-frequently-asked-questions-by-55sh/
Verdict: Strong hire
My feedback across all rounds was very strong, and my recruiter even tried considering me for L4, but one interviewer felt I wasn’t the right fit for L4.
Overall, it was a great experience!
I’m now in the team matching phase and would appreciate any guidance or suggestions from the community on how to navigate it effectively.