Amazon NG SDE VO 面经|四轮下来,LP、OOD 和 Coding 都问了什么

531 Views
Amazon NG SDE VO 面经|四轮下来,LP、OOD 和 Coding 都问了什么

亚麻 NG SDE 的 VO,技术题和 BQ 是混着来的。四轮下来,最折磨人的不是某一道题本身,而是写完代码以后,面试官还会不断改条件、追项目细节,看你能不能把思路讲清楚。

这次四轮里,第一轮是 HM,后面接 Meeting Rooms、停车场 OOD 和区间题。每一轮都有 BQ,准备时别把 LP 和 Coding 分开练。

第一面:HM 先问项目,再做 Locker 分配

第一轮是 Hiring Manager 面。BQ 主要问团队分歧、赶 deadline 的经历,以及怎么用 GenAI 提高工作效率。每个问题都跟着追问,比如当时谁不同意、你拿什么数据说服对方、最后结果怎么样。

Coding 是 Locker & Package。

Topic:有不同尺寸的包裹和储物柜。包裹到达后,需要分配合适的柜子;取件后柜子重新可用。实现核心分配逻辑,并讨论后续扩展。

解答思路:先把包裹和柜子的匹配规则说死。Package 里放包裹 ID 和尺寸,Locker 里放柜号、尺寸、状态以及当前包裹。分配时优先找能容纳包裹的最小空柜,别让小包裹提前占掉大柜。

assign 可以按尺寸维护可用柜列表:小包裹先找小柜,没有再往中柜、大柜找;中包裹不看小柜;大包裹只能进大柜。follow-up 会落到包裹超时、柜门故障、重复投递和并发分配。这里要主动提一句:同一柜子的状态更新需要原子化,否则两个请求可能拿到同一个柜子。

BQ 里问 GenAI,别只回答“用它写代码更快”。把场景说具体:拿它生成测试样例、做日志分类、辅助排查错误;再补一句人工怎么验证结果,答案会稳很多。

第二面:跨团队项目追问,接着做 Meeting Rooms

这一轮先聊跨团队协作。项目是依赖别的团队提供 Map API,自己负责把 Ticket 做成可视化。面试官会连续往下问:接口没按时交付怎么办?有没有准备替代方案?产品催上线时,你怎么同步风险?

这类题别急着说“我主动沟通”。先讲依赖关系,再讲你怎么拆任务、怎么确认接口契约、怎么把阻塞项写进排期。项目追问多,不是因为面试官想听一个漂亮故事,而是想确认你到底有没有亲自推进过事情。

Coding 是 Meeting Rooms。

Topic:先判断一组会议是否有重叠。follow-up 是求最少需要多少间会议室。

解答思路:判断重叠时,按开始时间排序,比较相邻会议即可。求最少会议室数时,用最小堆保存正在开会的结束时间。新会议开始前,把结束时间不晚于当前开始时间的会议室弹出去;再把当前会议结束时间压入堆。堆的最大长度就是答案。

面试官继续追问时,可以补扫描线写法:开始记 +1,结束记 -1,按时间排序后累加,最大值就是会议室数量。重点是先问清楚结束时间和下一场开始时间相等时,是否允许复用同一个会议室。

第三面:停车场 OOD,重点是类职责别混

第三轮偏 OOD,题目是设计一个三层停车场。车位分小、中、大三种尺寸,只要求写必要的类和方法,核心是实现 assign.

Topic:设计 ParkingSpot,Floor,ParkingLot 三个类,实现车辆入场后的车位分配。

解答思路:ParkingSpot 负责车位尺寸、是否占用、绑定哪辆车;Floor 负责管理本层车位;ParkingLot 管理所有楼层,对外提供分配入口。

分配车辆时,从能容纳该车辆的最小车位开始找。小车优先用小车位,没有再往上找;大车只能找大车位。车位被占后,状态和车辆映射一起更新。面试官如果问怎么扩展,可以说预约车位、电动车充电位、无障碍车位都可以从车位属性和分配策略往下加,不需要把整个停车场类推倒重来。

这轮很容易一上来就画很多类,最后却没时间写核心方法。先问清楚是否需要计费、是否支持多入口、车辆尺寸如何定义;需求不复杂时,就把 assign 写完整。Amazon SDE I 的面试记录里也出现过 Package System 和 OOD 类题,准备这类题时,重点是对象边界和代码落地。相关复盘可以参考。

第四面:合并区间,follow-up 问区间交集

最后一轮是纯 Coding。

Topic:给定区间数组 intervals,合并所有重叠区间。

解答思路:先按 start 排序,维护结果数组 merged。遍历当前区间时,如果它的 start 小于等于 merged 最后一个区间的 end,说明两者重叠,把结束位置更新成较大值;否则直接加入 merged.

Complexity:排序是 O(n log n),遍历是 O(n)。

follow-up 是两个已排序区间列表求交集。用双指针扫描,每次交集起点取两个 start 的较大值,终点取两个 end 的较小值;起点不大于终点时,加入结果。随后移动结束更早的指针。

这题写法不难,容易丢分的地方在边界:[1,3] And [3,5] 算不算重叠?空数组怎么办?一个区间完全包含另一个时怎么处理?写完主动拿这几组例子过一遍,比只交主逻辑好很多。

BQ 最后怎么收

四轮里可能单独出现纯 BQ,也可能像前面一样掺在技术轮里。高频方向包括职业转型、优缺点、领导反馈、失败经历、团队角色、最有成就感的项目,以及理想工作环境。

有个很实用的细节:没听清问题就让面试官重复。别为了显得反应快,听了一半就开始讲。回答也别铺太长背景,先给结论,再讲一件具体的事。比如被问失败经历,先说失败是什么、影响多大,再讲你做了什么、后来怎么防止同类问题再次发生。

Exam preparation advice

LP 准备五六个故事就够,但每个故事都要经得起追问。至少准备一个跨团队依赖、一个紧急交付、一个失败复盘,再准备一个你主动推动改进的项目。

Coding 除了写答案,还要练 follow-up。Meeting Rooms 要会堆和扫描线,区间题要会边界分析。OOD 不用背一堆设计模式,先把 Locker、Parking Lot、运费计算这类题的对象和核心方法写出来。

近期也有候选人反馈 Amazon NG 采用四轮线上流程,技术和 BQ 会交替出现。四轮 VO 讨论可作为流程参考。

FAQ

Amazon NG VO 每轮都有 BQ 吗?

很可能会穿插。技术题前后都要能聊项目,不能只准备 Bar Raiser 那一轮。

停车场 OOD 要写到什么程度?

先完成类职责和 assign。只有面试官继续扩展,再讨论计费、预约和多入口,不要一开始就把题做成大型系统。

Meeting Rooms 为什么用最小堆?

堆顶永远是最早结束的会议。新会议开始前,已经结束的会议室可以释放;堆里剩下多少结束时间,就有多少会议室正在被占用。

About Programhelp

进 VO 之前,可以找 programhelp做实时面试助攻和备考辅导。我们熟悉 Amazon NG SDE 的 LP、Coding 和 OOD 追问节奏。无论是 OA 题型解析、OA 辅导、VO 辅助、VO 模拟面试、VO 面试陪练还是系统设计辅助,都可以获得更有针对性的准备方案:Programhelp · 服务详情

author avatar
Jack Xu MLE | Microsoft Artificial Intelligence Technician
Ph.D. From Princeton University. He lives overseas and has worked in many major companies such as Google and Apple. The deep learning NLP direction has multiple SCI papers, and the machine learning direction has a Github Thousand Star⭐️ project.
END
 0