Google SWE Intern 的面试就2轮面试,主要考察算法设计部分,重点考察数据结构和算法基础,包括动态规划、图算法、树操作、排序搜索等经典问题。常见题目有最大子数组和、LRU缓存实现、二叉树LCA、序列化反序列化等,需要熟练掌握时间空间复杂度分析。Google 面试用自家的text editor,没用Google Doc;建议mock的同学用text editor 练习。
Google SWE Intern VO 第一轮
题目:Google Company有一堆会议室预订记录请求,每条record有start_time和end_time。返回最少需要多少room。
澄清问题
- 时间区间是start开始还是end开始?
- 若为 半开区间
[start, end):end == next.start可复用同一间房。 - 若为 闭区间
[start, end]:end == next.start视为冲突,需要新房间。(面试时需要先问清,若未明确,通常默认半开区间。)
- 若为 半开区间
- 输入是否可能为空?是否存在
start == end的会议? - 时间是否有上界/是否为整数?
- 输入是否已按
start_time升序?
思路
按开始时间处理会议,用一个小根堆存“正在占用的房间的最早结束时间”,每来一个新会议:
- 若堆顶结束时间
<=新会议开始时间,说明有房间空出来了——弹出并复用; - 否则需要新开一间房——直接把新会议的结束时间压入堆。
用一个变量记录堆曾达到的最大大小,即所需房间数。
复杂度:时间复杂度 O(Nlog N),空间复杂度:O(N)。
Google SWE Intern VO 第二轮
这轮面试包含BQ环节和两道coding题。面试官是位美国小哥,人很nice,简单寒暄后直接进入正题,整体节奏挺舒服的,下面简单分享一下。
BQ
- 讲一个你从项目失败中学到重要经验的例子?
- 如果你和同事在技术方案上意见不合,你会怎么处理?
- 描述一次你主动帮助团队成员提升技术能力的经历?
Coding
题目:可变范围求和 这题要求设计一个数据结构,既能查询数组某个区间的和,又能支持更新某个元素的值。
思路:用线段树来解决最合适,把数组构建成二叉树结构,每个节点存储子节点的和,这样查询和更新都能在O(log n)时间内完成。
Follow up:
- 除了线段树,你还能想到其他方法吗?请比较一下它们的优劣。
- 如果这个数组非常大,并且需要频繁更新,你的线段树实现在内存和性能上可能会有什么瓶颈?如何优化?
FAQ — Google SWE Intern 面试常见问题解答
1. Google SWE Intern 面试一共几轮?
Google SWE Intern 的技术面试一般有两轮技术面试(每轮约 45 分钟),主要考察算法和数据结构。大多数候选人是两轮即可完成。若某一轮反馈不明确 有时会再加一个 tiebreaker(第三轮) 进行补充评估。
2. 面试只考算法吗?会有行为/项目问题吗?
根据不同实习候选人的面试回忆:
- 绝大部分 SWE Intern 面试是纯技术算法面,不一定问行为问题。
- 有些面试官可能会在第二轮短暂问一两个简单项目/沟通相关的问题,但不会像全职岗位那样深挖行为面。
3. 面试中典型题目难度如何?会难过 LeetCode Hard 吗?
不完全固定,候选人反馈差异较大:
有人说题目偏 LeetCode medium 到 medium-hard 级别(如图/树/DP 等)
也有人遇到更难的“跟 Hard 接近”的问题。
总的来说,Google 更看重你的思路过程、提前澄清问题条件、时间空间复杂度分析。
4. Coding 面试具体流程是什么?
一般顺序如下:
- 面试官简短介绍
- 进入 Coding 题目(中等难度 DSA 问题)
- 你应先问清边界条件和输入输出假设
- 讲解你的思路、复杂度分析
- 编写完整代码
- 至少还有一个 follow-up 或改进/优化问题
- 结束前可提问(关于团队/实习项目等)
5. 技术考察主要集中在哪些知识点?
根据官方描述和面经整理,核心如下:
算法与数据结构:
- Tree / Graph / Linked List / Array
- Heap / Two pointers / Sliding window
- Recursion / DP / Sorting/Search
- Hash table/ Set
- Complexity 分析
(这些内容是 SWE Intern 面试重点)
6. 我需要准备系统设计面试吗?
对于 SWE Intern 职位来说,系统设计一般不是重点,主要集中在算法和代码实现。但对于更高年级或特定岗位也可能被问到简单设计思路(如 API 设计)。
7. 我是否需要在屏幕共享 Google Doc 上编码?
与全职 SWE interview 类似,Google 面试通常共享 Google 文档进行代码交流,但也有实习候选人反馈使用的是 text editor(纯文本环境)。提前习惯无 IDE 辅助写代码会有帮助。
8. 如果没在两轮通过,是否还有机会?
是的:
- 如果技术反馈一好一差,有时会再安排 第三轮面试(tiebreaker)
- Google 会综合所有面试反馈来决定是否 offer 或 project match
这意味着单独某一题答得不好不会立即判定你不合格。
9. 我面试完多久会收到结果?
Google 的整体流程(从申请到 Offer decisions)通常要几周时间。具体时间因团队和流程进度不同而异。中间可能包括后台审核、project match 阶段等。
10. 有没有准备建议?
- 多做数据结构 & 算法题练习(重点链表/树/图/DP)
- 练习清晰叙述思路、问 clarifying questions
- mock interview 时用无 IDE 环境练习
- 面试前了解基础行为问题(“Tell me about a time…”)
准备过程讲逻辑和沟通的练习同样重要。
整场下来,顺利通过! 在Amazon、Meta、微软、Google等等北美大厂OA和VO都很熟悉,都能顺利通过。如果你也需要Google面试助攻、面试辅助、OA代写等服务,请与我们联系。