
waymo面试难度总体来看,和去年的难度差不多,题库也没变,希望大家能抓住waymo的机会,2026年的就业形式依旧不如之前,这是我从这几个月辅面得到的数据,贡献一个2026 Waymo ng 面经 。
Waymo ng 面经
Round 1:Code
Code 1:给定一个只包含 0、1、2 的数组,找到距离最近的一对(1, 2) 的下标距离。
思路:用一次线性扫描解决问题:从左到右遍历数组,分别记录最近一次出现的1和2的位置。每当遇到1或2时更新对应位置,如果两个位置都已经出现过,就计算当前距离abs 并更新最小值,这样无需枚举所有组合,只需遍历一次数组即可完成,时间复杂度为 O(n),空间复杂度为 O(1)。
Coding 2:A player is in a “streak” as long as they keep doing the same event type again and again, without taking too long between actions.
思路:这题难度在较难和困难之间单指针遍历,当前 streak 的类型、开始时间、长度和上一个时间。 当 streak 中断时,检查长度和持续时间,符合条件则计数。时间复杂度 O(n),空间 O(1)。
Follow up:增加 user_id,需统计每个用户的 Super Streak 数量。 使用字典每个用户的当前 streak 状态和结果计数。
Round 2:Code
题目1:给定一个价格数组 prices。 从左到右卖商品,每个商品的最终售价规则是:用原价,减去它右边第一个 价格 ≤ 它 的商品价格,如果右边不存在这样的商品,就按原价卖。
要求输出两行:第一行是总售价;第二行是所有“按原价出售”的商品下标(0-based,升序)。
思路:这是一个很标准的“右边第一个更小或相等元素”的问题,做法就是单调栈。
题目2:给你一个长度为n的排列 p。对每一个 k(1 ≤ k ≤ n),判断是否存在一个连续子数组,里面正好是数字 1 到 k 的一个排列(顺序无关)。 如果存在,就说这个 k 是 balanced。 最终要输出一个长度为n的 01 字符串,第 k 位表示 k 是否 balanced。
思路:核心不是去枚举区间,而是盯住1到k这些数在原数组里的位置分布。 先记录每个数的下标 pos[x]。 从 k = 1 开始往上扩展,动态维护当前 1..k 的最左位置L和最右位置 R。 对某个k来说,只要满足一件事:包含1..k的最小区间长度刚好是k,也就是R – L + 1 == k。
Round 3:System Design
系统设计:设计支持多用户实时协作文档编辑系统(需要有缓存)
思路:是将文档拆分为多个可独立编辑的分片,通过分布式存储提升扩展性,并为每个分片引入版本号或操作序列来解决并发编辑冲突;缓存层采用基于“最近访问 + 最近编辑”的混合淘汰策略提升热点分片命中率,同时设置过期或内存水位控制避免膨胀。
Follow up:如果需要支持历史版本回溯,应如何设计缓存系统以降低存储成本?
可以考虑采用增量存储而非完整快照,定期生成 checkpoint,其间版本以差异记录方式保存。
面试体验
Waymo ng 的面试核心还是考察基础能力——算法思路的清晰度、系统设计的思维逻辑,一般会我们提前一周mock,算法题型和sd过一遍
如果你也在准备 Waymo 或其他大厂的 OA/VO,可以直接联系 interviewAid 了解对应的面试辅助和陪跑支持。如果你想找我辅助面试,或者用 Waymo ng 面经 中的原题 mock,感受最真实的feedback,欢迎戳我。
全网唯一一家支持 L6 以上 system design mock,只放真实面经。