美国Google公司NG软件工程师面试经验
基本信息
- 面试日期:近期
- 面试岗位:Software Development Engineer
- 岗位级别:New Grad
- 学历背景:硕士
- 工作类型:全职
- 投递方式:内推
- 面试形式:技术电面
面试详情
面试整体体验
本轮面试整体沟通比较顺利,面试官态度友好。两道题之前都没有做过,因此过程中花了较多时间讲解思路和举例说明,但两题最终都给出了最优解。过程中有一些明显的书写错误,在面试官提醒后快速完成修正。
第一题
leetcode 289。
follow up:
- in-place modify。
题目本身难度不大,完整写完代码、dry run、follow up 和测试后,正好还剩大约5分钟进行反问。
第二题
给定一个有序数组,每个索引代表不同的人,每个索引的元素是一个元组:
(timestamp, "进门" 或 "出门")
要求返回一个数组,每个索引代表不同的人,每个元素表示这个人在什么时间进门或出门。
当多个人在同一时间进出门时,规则如下:
- 如果前一刻是有人进门,进门的人优先;
- 如果前一刻有人出门,出门的人优先;
- 如果前一刻没人,出门的人优先;
- 如果同时有人进门或出门,索引数字小的人先结算。
思路:
- 使用两个队列,分别管理进门和出门;
- 使用一个时间变量和一个
prev_state变量记录前一刻的进出状态。
follow up:
- 朴素解法:时间从最小 timestamp 一直加到最大 timestamp;
- 优化方案:根据输入数组中的 timestamp 跳跃式推进时间,时间复杂度优化到
O(n)。
代码完成并回答完 follow up 后,没有来得及进行 dry run 和测试,但在讲解思路时结合例子说明得比较详细,并确认没有遗漏 edge case。最终反问时间被占用了大约2分钟。
面试结果反馈
- 最终结果:未知
引用来源
Google SDE NG VO R2海外面经
来源:一亩三分地
作者:匿名用户-FSHIM
发布时间:2026-05-05
