Google SDE Intern Interview - Summer 2026
Summary
I successfully completed a four‑round interview process for a Software Development Engineer Intern position at Google and received an offer.
Full Experience
Background: 3rd year CS undergrad, applied through campus placement + referral.
- Applied: mid-July
- Result: 5 days after interviews
Round 1 – Online Assessment (90 mins) Two DSA problems + one MCQ section on CS fundamentals (OS, DBMS, OOP).
- Medium — Given an array, find the length of the longest subarray with sum ≤ k. (Sliding window)
- Medium-Hard — Given a binary tree, return the maximum sum path between any two leaf nodes.
Both had partial test cases visible; passed 9/10 on Q1, 7/9 on Q2 (missed an edge case with negative sums).
Round 2 – Technical Interview (45 mins) Started with a quick intro, then moved to problem solving.
- Problem: "Design a data structure that supports insert, delete, and getRandom in O(1)."
- I started with a hashmap + array approach, explained the swap-and-pop trick for O(1) deletion.
- Interviewer asked a follow‑up: "What if duplicates are allowed?" — had to extend with a hashmap of sets storing indices.
- Discussed time/space complexity, then a couple of quick CS fundamentals questions (process vs thread, indexing in SQL).
Round 3 – Technical + Project Discussion (45 mins)
- Deep dive into a project from my resume (a URL shortener). Asked about database schema, how I handled collisions in hash generation, and how I'd scale it to handle millions of requests/day.
- Coding question: "Detect a cycle in a linked list and return the starting node." Solved with Floyd's cycle detection, then explained the math behind why the meeting point works.
- Ended with "Do you have questions for me?" — I asked about team structure and what a typical intern project looks like.
Round 4 – HR/Behavioral (20 mins) Standard questions: why this company, strengths/weaknesses, how I handle conflict in team projects, and a hypothetical about tight deadlines.
Verdict: Selected 🎉
Tips for others:
- Practice sliding window, two pointers, and tree/graph traversal thoroughly — these came up repeatedly.
- Be ready to justify time/space tradeoffs out loud, not just code silently.
- Know your resume projects at a system‑design level, not just "what" you built but "why" you made each choice.
- For behavioral rounds, keep answers structured (situation → action → result).
Interview Questions (5)
Longest Subarray with Sum ≤ k
Given an array of integers, find the length of the longest contiguous subarray whose sum is less than or equal to a given value k. The solution should run in O(n) time using a sliding window approach.
Maximum Sum Path Between Two Leaves
Given a binary tree, return the maximum sum of values along any path that starts at one leaf node and ends at another leaf node. The path may pass through the root or any internal node, but must not revisit nodes.
Insert Delete GetRandom O(1) Data Structure
Design a data structure that supports the following operations in average O(1) time:
- insert(val): Inserts an item val into the data structure.
- delete(val): Removes an item val from the data structure.
- getRandom(): Returns a random element from the current set of elements. Provide the approach and explain how each operation achieves O(1) complexity.
Insert Delete GetRandom O(1) with Duplicates
Extend the previous data structure to allow duplicate values. The operations insert(val), delete(val) (which removes one occurrence), and getRandom() must still run in average O(1) time.
Detect Cycle in a Linked List
Given the head of a singly linked list, determine whether a cycle exists. If a cycle exists, return the node where the cycle begins; otherwise, return null. Implement the solution using O(1) extra space.
Preparation Tips
- Practice sliding window and two‑pointer techniques thoroughly.
- Review tree and graph traversal algorithms, especially path‑sum problems.
- Master the classic O(1) insert/delete/getRandom design and its duplicate‑handling variant.
- Be comfortable with Floyd’s cycle detection for linked‑list problems.
- Prepare to discuss system‑design aspects of your projects, focusing on scalability, trade‑offs, and why design choices were made.