Google Interview Guide

Google 面试辅助:Coding、Design、Team Match

Google SWE、MLE、DS 候选人的面试准备路线,覆盖 coding 证明、复杂度表达、系统设计和 team match 项目叙事。

Question Study

Google 题目专题

基于 203 篇来源 URL 去重面经,整理 222 道代表练习题与重点题解题路线。

查看去重题目专题 →

Related Articles

Google 相关文章

继续查看这个公司的岗位拆解、题型复盘和专项准备文章,按自己的轮次选择阅读。

Google • Google 2027 Intern 面试 • Google Summer 2027 OA • Google Intern Coding Interview • Summer Intern • Googleyness • OA • 2027 秋招面试 • 北美科技面试

Google 2027 Summer Intern 面试:OA、Coding 与后续流程

Google 2027 Summer Intern 美国岗位核查:区分 BS/MS 与 PhD 申请窗口,说明测评与技术面状态,提供 Coding、边界测试、项目表达与 7/14/30 天准备路线。

阅读全文

Question Radar

Google 高频必考题型

先看题型方向,再用下面的代表题目判断自己是否真的会拆题、会解释、会处理 follow-up。

必备

Coding 证明:grid path 最小化最大高度、tree reroot DP、DFS/BFS 可达性。

必备

数据结构实现:CoolMap put/get/putAll O(1);额外练习可自行扩展 delete 和历史读取。

必备

数学/可行性:切木头二分答案、贪心是否成立的解释。

必备

Hiring Assessment / Team Match:合规、协作、项目影响力和团队匹配表达。

Company Signals

Google 近期面试信号

从本地面经汇总里抽取高频信号,帮助你先判断该补 coding、设计、项目还是表达。

信号

算法题需要讲清 invariant、正确性证明和复杂度。

信号

L4+ 可能加入系统设计、项目深挖和行为面试。

信号

Team match 阶段要能把项目经历映射到团队方向。

Sample Questions

Google 代表题目清单

这些不是让你背答案,而是把公司常见考法翻译成可练习的具体题目和 follow-up 场景。

Coding

给定 grid,每个格子有高度,求从左上到右下的一条路径,使路径上遇到的最大高度尽可能低,并解释为什么二分或 Dijkstra 成立。

Data Structure

实现 CoolMap:put(key, value)、get(key)、putAll(value) 都要求 O(1)。先实现这三个接口;训练追问可再讨论 delete 与历史时间点读取会如何改变数据结构。

Coding

最长同频子串:出现过的字符次数全部相等:返回最长连续子串的位置,未出现的字符不参与计数。

Coding

切木头最大等长段:在答案值域上二分:不能拼接木头,切出至少K段,求正整数段长最大值。

Coding

多个已排序区间流求并集:堆归并与在线合并:每个流按起点非降,只保存各流一个区间,输出规范化并集。

Coding

嵌套整数深度加权:结构遍历与字符串解析:顶层整数权重1,每嵌套一层加1,处理负数、多位数及语法错误。

Coding

分别排序两段后整体有序:统计合法切点:切成两个非空连续段,各段独立排序,合并后要非降。

Coding

至多翻转一个数:最小化数组总和绝对值:一个数x变为−x,总和从S变为S−2x,比较所有候选。

Coding

两端值相同的最大区间和:按端点值维护最小前缀:区间至少包含两个位置,数组允许负数,不能总选择最早同值。

Coding

字符串列表序列化:长度前缀避免分隔符冲突:保留空字符串、数字、冒号和Unicode,不依赖特殊分隔符永不出现。

Coding

树上所有节点距离和:一遍子树统计,一遍换根:从一个根的答案出发,沿父子边用n−2×子树大小更新。

Coding

统一循环位移字符串分组:以首字符为基准归一化:每个字符同时在a..z上循环移动相同偏移,才属于同组。

Coding

父节点数组是否是一棵树:单根、合法索引、全部可达:一个根并不足够,其他节点可能组成与根隔离的环。

Coding

有符号数据流均值为S的最长区间:精确变换与前缀:将平均值约束化成零和,记录最早相同前缀。

Coding

区间是否奇偶交替:预计算相邻违规边:大量静态查询只检查区间内部相邻对,不算左边界之外。

Coding

至少K种不同值的最短子数组:单调滑窗:达到K种后连续缩左,每次先记录候选再删除元素。

Coding

打乱后的原数组与两倍数组:支持负数和零的恢复:按绝对值消耗x与2x的计数,避免负数普通升序配错。

Coding

棋子每次右跳三格:最多能收集多少金币:同余类互不干扰,落点金币计一次,跳过的金币不计。

Coding

两位数共同数字分组:统计全组共享的数字:要求存在同一数字出现在每个数里,重复位置可各自被选。

Coding

最少插入括号使序列合法:贪心修复负前缀:只插入、不删除、不重排,最后补足未闭合左括号。

Coding

网格每步恰好下降一:最长路径的值域拓扑DP:相邻值必须差1,不能把任意严格下降路径当成同题。

Coding

动态正整数MEX:find、fill、delete与扫描成本:维护集合里缺失的最小正整数,删除会让答案往回退。

Coding

餐厅候位:按到达顺序找到首个能入座的队伍:支持加入、离开、按桌容量服务最早合适队伍。

Coding

两人去同一目的地:三组距离求最小共享路费用:A/B分别到某汇合点,之后共用一条路径到D,共享边只计一次。

Coding

选择利润后跳过指定位置:逆序DP与负数合同:选第i项拿a[i]后到i+1+a[i],也可不选去i+1。

Coding

每日重复跨日任务:整周期负载加余段扫描:长任务跨多天,区分一次性时间线和每天新启动的周期实例。

Coding

所有±1等差好子数组的元素和:线性累计结束贡献:好子数组的每步差都为+1或都为−1,求各子数组元素和再相加。

Coding

短信活跃用户:不同邻居去重、O(1)冠军与TopK:消息为无向关系,重复联系同一人不增加活跃度。

System Design / 设计追问

书架与书签:按身份移动,删除时同步清理引用:设计add/remove/move和bookmark,让书的位置变化不破坏身份。

System Design / 设计追问

Android健身房心率监控:实时展示、离线补传与告警:约100名学员的设备上报,为教练提供状态和异常提示。

System Design / 设计追问

日历免打扰空闲区间:统一时区、裁剪窗口和取补集:给定忙碌/免打扰区间,列出查询窗口内全部可用时段。

System Design / 设计追问

Street View车载图片上传:断点、鉴权与下游处理:网络中断、凭证风险和返回响应丢失时,保持图片任务可追踪。

System Design / 设计追问

百亿页面周期爬虫:按host礼貌调度与持久化frontier:面向搜索索引,支持周期重抓,暂不渲染JavaScript。

System Design / 设计追问

十万人内部文档搜索Agent:权限先行、引用可核对:RAG搜索的成本、延迟、规模与工具边界,需要同时说明。

System Design / 设计追问

音乐推荐与LLM Agent:候选召回、排序和受控交互:先完成可评估推荐系统,再说明LLM能改变的交互与取舍。

System Design / 设计追问

Agent按token计费限流:预留额度与实际消耗对账:并发生成前预留预算,结束后结算,不能只数请求。

System Design / 设计追问

每周优惠服务:活跃分页、个性排序与一次领取:多pipeline导入优惠,按浏览历史排名并允许每用户领取一次。

System Design / 设计追问

CI/CD测试失败处理:有限重试、证据保留和智能通知:流水线失败不全是代码错误,区分确定失败、环境故障和flaky。

System Design / 设计追问

客服Agent转人工:会话所有权、摘要与消息不断档:机器人与人工交接期间,避免双方同时作答或丢消息。

System Design / 设计追问

一个物理Timer实现多个逻辑Timer:堆、重设与过期回调:物理set会覆盖旧任务,最早逻辑到期驱动下一次唤醒。

Coding

恰好一人在线的时间段:合并个人区间后扫事件:返回活跃人数恰为1的全部片段,不是所有有人在线的并集。

Coding

右上、右、右下路径数:滚动列DP与检查点分段:从左下到右下,每步列数加1,检查点按顺序经过。

Coding

两个数组最小K个数对:按行有序归并:每对由一个a位置与一个b位置组成,重复值位置仍分别计。

Coding

从组合数量DP恢复硬币面值:逐金额验证新增一币:明确是无序、无限重复组合,dp[0]=1,币值不重复。

Coding

数组区间是否全唯一:一次预处理,O(1)查询:保存每个右端对应的最早合法左端,查询只需比较边界。

Coding

恰删一个元素后存在Pivot:从保留的枢轴反推删值:允许负数,pivot左和等于右和,不能把删掉的位置当枢轴。

Coding

删除第二数组冲突项:前K填满之前持续过滤:删除让后面的元素进入前K,不能只检查原来的前K。

Coding

机器人重复消息过滤:只更新最后展示时间:隐藏的接收消息不刷新10秒窗口,等号行为单独指定。

Coding

加权不重叠工作:按结束时间DP与二分前驱:选择任意工作子集,区间不重叠,利润和最大。

Coding

屋顶漏洞最少整行整列木板:二分图最小点覆盖:每个洞连接所在行和列,选行或列使所有洞被覆盖。

Behavioral

为什么选择Google?若这次未通过怎么办?:把动机拆成目标产品/问题、自己能贡献的技术、希望成长的能力。

Behavioral

最引以为豪的项目:区分个人决定与团队成绩:先选一项自己能证明的决定,说明问题与约束,再讲两个可选方案和取舍,最后交代团队贡献与自己贡献。

Behavioral

失败经历与重来一次:当时判断为何合理,后来漏了什么:先定义失败的验收标准,区分结果、自己的决策及外部变化。

Behavioral

目标和信息模糊时如何推进项目:先列已知用户目标、未知事实和不可逆决定,按对方案影响排序。

Behavioral

最难接受的反馈:先理解证据,再改变可观察行为:复述反馈以确认理解,问具体行为与影响,区分表达方式、技术分歧和事实指控。

Behavioral

与难合作的同事共事:从具体阻碍找到可执行协议:描述可观察行为,不给人贴“懒/坏”标签。

Behavioral

团队技术意见分歧:用共同验收标准比较方案:先确认双方目标一致及真正分歧:成本、可靠性、交付期限或维护能力。

Behavioral

任务超出预期:排序交付,也追溯为何冲突未提前发现:盘点任务影响、承诺、依赖、截止时间及延期成本;和owner商议删范围、移日期或加资源。

Behavioral

项目中途改方向:技术可行还需验证用户影响:说明触发改向的新证据、继续原路的成本和替代选项。

Behavioral

学习他人后改变观点:讲清新证据怎样推翻旧判断:选一个真实持有的观点,给它成立的假设;说明他人证据、实验或经验如何改变某条假设,而不是简单“我听从更资深的人”。

Behavioral

帮助同事成长:技术辅导与职业目标都要问到:先问被辅导者目标与已有能力,不默认对方只缺代码技巧。

Behavioral

帮助新人融入团队:参与机会、信息入口与反馈安全:先查新人最缺的信息与参与机会,给清晰文档/伙伴/小任务,不把融入等同吃饭团建。

Behavioral

跨部门协作项目:用交付合同和决策权减少依赖摩擦:先列共同业务目标、各团队成功指标和关键依赖,明确每个接口/验收/决策owner。

Behavioral

主动发现性能瓶颈:测量、归因、灰度与用户收益:先证明瓶颈是值得投入的问题,再拆端到端延迟/资源,按profile验证根因。

Behavioral

别人抢成果功劳:准确记录贡献,避免公开争执:先确认是疏漏、表达模糊还是反复不当归功;私下用具体产出说明贡献并提出修正。

Behavioral

好团队与好文化:给可观察标准并说明自己怎样贡献:定义信息透明、可质疑决策、清晰责任、可靠交付和尊重差异等可观察行为。

Behavioral

理想经理与自己的管理实践:支持、反馈和交付边界:说明期待经理提供目标/优先级、及时反馈、成长机会和风险升级渠道;同时说明自己如何提供事实、主动报告阻塞并承担责任。

Behavioral

职责外帮助同事:确认影响、协调容量、留下可复用结果:先看求助的用户影响与自己任务优先级,再商议投入范围与时间;可以帮诊断、给文档或连接专家,不必须接管整个项目。

Behavioral

新问题缺领域知识:确定知识缺口并向专家求助:把陌生问题拆成可确认合同、假设、风险与需要专家判断的部分。

Behavioral

过去一年怎样提升:用行为和产出证明学习闭环:选择和工作目标关联的一项能力缺口,给有节奏练习、反馈和实际应用。

Behavioral

团队相处融洽时如何提高创新:安全质疑与低成本实验:先区分融洽和过度一致。

Behavioral

不同背景与包容性设计:把遗漏用户纳入验收:说明差异怎样揭示自己的默认假设,主动收集被忽略用户的任务、环境与可访问需求。

Behavioral

临近deadline需求变化:评估影响并协商范围:先确认新需求是必须验收、风险修复还是想法,列对测试/依赖/上线的影响。

Behavioral

做新项目时发现旧bug:按影响验证并升级:先验证可复现性和影响范围,判断安全/数据/用户风险与新任务依赖。

Coding

点集最大矩形:等长同中点的对角线分组:矩形不必平行坐标轴,用整数几何避免浮点相等。

Coding

老鼠避猫路径:最大化路径最小曼哈顿距离:只走陆地,猫静止,路径每点安全值是到猫的曼哈顿距离。

Coding

所有最短路径上出现的节点:两遍BFS距离等式:无需枚举指数多条最短路径,逐节点检查距离相加。

Coding

好友加删日志最早全连通:先给正确重算,再讨论离线优化:删除不能用普通并查集拆开组件,直径限制也不是连通性。

Coding

恰一个坏数对的黑盒:二分定位两端,只看查询次数不够:黑盒回答输入集合是否不包含完整坏对,跨两半时分别定位端点。

ML Domain / ML System Design

Transformer Attention:维度、缩放、mask与梯度:从QK相似度到行归一化加权V,解释每一步及边界。

ML Domain / ML System Design

Classifier-Free Guidance:从条件概率到两路预测混合:明确scale参数化,解释条件强度与多样性的取舍。

ML Domain / ML System Design

Autoencoder:重建目标、瓶颈与为什么不能直接生成:确定性encoder/decoder学压缩,不自动给出可采样先验。

ML Domain / ML System Design

VAE:ELBO、重参数化与posterior collapse:encoder输出分布,优化重建期望减KL,而非确定性编码。

ML Domain / ML System Design

VQ-VAE:最近码本量化、straight-through与commitment:离散表示需要同时训练encoder、decoder与码本,生成另需latent prior。

ML Domain / ML System Design

选择Fine-tuning方法:先分知识缺口和行为缺口:从检索、prompt、参数高效微调到全量训练,比较数据与资源。

ML Domain / ML System Design

NLP Tokenization比较:词、字、子词和字节的代价:讨论未知词、多语言、序列长度和可逆性,不只背算法名。

ML Domain / ML System Design

结构化与非结构化数据Chatbot:路由、权限和可验证回答:文档检索与数据库查询分工,跨源组合必须可追溯。

ML Domain / ML System Design

实时ML推荐:冷启动、迭代与延迟精度预算:把离线训练与实时特征、召回、排序、监控串成可回滚闭环。

ML Domain / ML System Design

欺诈检测冷启动与不平衡:召回、误报和延迟标签:少数欺诈标签下,避免用accuracy掩盖漏检。

ML Domain / ML System Design

Hashtag聚合服务:计数口径、趋势窗口与热键:先定义top榜是总量、增长还是独立用户,再选计数与近似方案。

ML Domain / ML System Design

视频近重复:候选检索、时间对齐和申诉:区分同文件、转码重复与内容近似,不只比较单个embedding。

ML Domain / ML System Design

Google Photos笑脸功能评估:多脸、阈值与用户控制:确定一张照片是否满足产品笑脸规则,评估不同场景误差。

ML Domain / ML System Design

Watch Next推荐:会话目标、候选新鲜度与反馈偏差:下一条视频的排序需兼顾有效观看、探索和内容约束。

ML Domain / ML System Design

Naive Bayes:条件独立、log概率和零频平滑:分类比较各类别后验,独立是假设不是观察事实。

Situational Judgment

YouTube设计想法未被采纳:怎样继续推动或接受决定:老板未采纳你认为很好的设计,先了解评价标准与约束。

Situational Judgment

采购时朋友公司急需客户:披露关系并保持评估公平:你负责采购,朋友创业公司若失去机会可能陷入困境。

Situational Judgment

新PM因技术跟不上被嘲笑:制止伤害并提供参与入口:同事嘲笑新PM,技术知识不足不应被当作排斥理由。

Situational Judgment

竞争公司朋友索要重要客户信息:保持授权边界:朋友处境困难,但请求涉及公司重要客户资料。

Situational Judgment

绩效系统把同事成果算给你:主动更正事实:你正处于达标边缘,错误归功可能让你受益。

Situational Judgment

客户口头答应购买:业绩记录与实际交易状态分开:你差一单达标,客户只口头承诺购买。

Situational Judgment

新同事被说不合群:调整信息与参与机制:有人因与团队习惯不同而被嘲笑,处理具体不尊重行为。

Situational Judgment

客户送贵重礼品卡:按题目明确的禁收政策处理:即使客户坚持,也不能用经理口头许可或分给团队绕过规则。

Situational Judgment

deadline前要求用前雇主代码:确认可授权来源与替代方案:即使自己写过代码,也不能直接假设可带入新公司。

Situational Judgment

同事度假只带私人电脑:先确认允许的访问方式:机密报告协作需要权限、设备与传输渠道同时满足要求。

Situational Judgment

发送机密资料需审批但经理下班:寻找正式代理或延期:deadline并不自动等于审批已经通过。

Situational Judgment

咖啡厅接到机密讨论电话:换受控环境再继续:授权接听不代表环境适合谈敏感内容。

Situational Judgment

收到竞争公司的全职Offer:职业选择与保密义务分开:面试题只有offer情境,不能臆定唯一选项或必须拒绝。

Situational Judgment

朋友旅行时借工作电脑查邮件:不要给未授权者设备访问:私人便利请求需要符合设备与账号使用规则。

Coding

至多改一个整数的最长单调子段:严格与非降两个版本:分别处理a<b和a≤b,连接左右段的整数可行条件不同。

Coding

多个顺序数组的共同母序列:唯一身份下的拓扑排序:每个元素在母序列只出现一次,约束成DAG才有解。

Coding

压缩排序数组中位数:按频数跨越目标秩:重复次数巨大也不解压,把中间两个秩落到值桶。

Coding

二叉树最长同值路径:两条向下臂在节点拼接:路径长度按边数,同值重复树不是严格BST。

Coding

Word Break:按位置DP,避免把重复子问题留给回溯:字符串是否能由词典中的非空词重复拼接。

Coding

子集去重:重复值只扩展上一轮新生成部分:按值多重集合输出不同子集,重复位置不重复返回相同值组合。

Coding

不重叠区间成员查询:O(n)、O(logn)、O(1)的真实代价:add成本、固定值域位图和空间预算需要分开说明。

Coding

实现Trie添加和查词:末尾标记区分词与前缀:哈希集合可查完整词,但Trie让共享前缀和后续接口可扩展。

Coding

滑窗去掉最大K项后的平均:计数树与秩前缀和:重复值按出现次数删除,保留最小W−K项,精确计算均值。

Coding

照片Iterator:先favorite,再普通列表,过滤blocked和重复:顺序稳定且不提前读尽所有输入,迭代状态只保存必要去重。

Coding

重复向量压缩与点积:按两侧run交叠长度乘加:RLE保留位置顺序,单纯统计全局值频率无法计算点积。

Coding

数组offset到数据流:正数取前缀,负数保留末尾:负offset必须读取流结束,前缀则可提前停止。

Coding

下一词预测:一次处理语料后按频次查后继:map of maps存bigram计数,静态数据可预计算最佳后继。

Coding

Superprime:每个十进制前缀都是质数:从一位质数扩展,只保留继续满足前缀条件的候选。

Coding

FizzBuzz撮合市场:FIFO部分成交与参与者对聚合:优先级是输入先来先服务,用两个队列保存未匹配余额。

Coding

碎片字符串查首个子串:跨片匹配并返回片内下标:KMP状态不中断,匹配可从一片开始在下一片结束。

Coding

只用加法、取模和右移乘法:迭代与递归双倍分解:将非负乘数按二进制拆分,避免重复加b次。

Behavioral

没有明确截止日期时怎样可靠完成任务:先确认任务价值、owner和验收,提出合理阶段日期,让对方确认优先级;用可见状态与阻塞升级保持推进,不等别人每日提醒。

Behavioral

速度与准确性冲突:重要小错误也要按风险处理:先界定错误影响和是否可逆;涉及权限、数据完整性或用户重大影响应作为发布基线,低风险表达可后续修。

Behavioral

沟通与演示:按受众背景调整内容并预判提问:先问受众需要做什么决定、已有背景和时间预算。

Behavioral

项目流程变化时怎样快速适应且保持有效交付:先查变化的原因、适用范围和新验收,识别受影响的工具/依赖/职责。

Behavioral

会议决策记录:让理由、责任和后续行动可追溯:记录决定、备选及理由、假设、owner、日期和待核事项,不逐字抄所有发言。

Behavioral

困难任务先查背景与风险:有限调查支持及时决策:先看已有合同/历史决策/失败案例,按影响和不确定性排优先,不追求了解每个细节才开始。

Behavioral

偏好大小团队与职责分工:说明条件而非贴标签:比较小团队的跨职能与快速反馈、大团队的专业分工与依赖协调。

Behavioral

同事没有达到期待:澄清标准、支持改善、及时升级:先核实期待是否明确、资源/依赖是否合理,私下讨论可观察差距。

Behavioral

团队成员失联或无法协作:保护关键路径并建立备份:先用既定渠道确认状态与是否有紧急影响,不猜测懒惰。

Behavioral

没有结构的团队怎样改进工作方式:先找具体摩擦:优先级不清、重复工作或决策无owner。

Behavioral

怎样成为优秀技术Leader:方向、判断和他人成长:用可观察行为定义技术lead:准确理解用户问题、做可解释取舍、发现风险、协调依赖、让他人独立。

Behavioral

职业目标、优势和弱点:以真实证据规划下一步:选与岗位相关的优势给具体证据,弱点说明影响、改进和仍存在的边界。

Coding

有向图强连通分量及边增删:普通DSU为什么不够:同一SCC要求互相可达,单向边不是等价关系合并证据。

Coding

未知起点RobotStub迷宫:虚拟坐标、探索与回退:只能canMove/move/isGoal,机器人物理位置必须和DFS状态一致。

Coding

链表十进制大数加法:进位、长度差与输入顺序:一节点一位,训练明确低位在前,输出新链表不改输入。

Coding

家族是否有血缘关系:父母DAG的祖先集合交集:兄弟姐妹可能互不可达,却共享祖先,所以不是查一条路径。

Coding

频率表排序与加权随机:精确整数区间取样:排名按频次,随机概率按count/总count,二者不是均匀选key。

Coding

二进制规则通配:明确*匹配任意长度及胜出策略:模式完整匹配输入,first与longest两种规则不可混称同一答案。

Coding

城市天际线:同坐标事件合并与高度最大堆:建筑区间重叠时输出最高覆盖高度变化点。

Coding

RPN转中缀最少括号:优先级与右孩子非结合运算:保留操作数次序,不做代数重写,采用精确有理数语义。

Coding

无向树能否选成二叉树:度数与同层颜色约束:根最多两孩子,其余点扣掉父亲后最多两孩子,再检查每层同色。

Coding

火炬节点功率传播:最近火炬的多源BFS:火炬提供16功率,按边距离衰减,先写清衰减合同。

Coding

非负权重对象TopK子集:把最大和转成最小排除代价:相同权重对象仍是不同身份,等和结果保留多个子集。

Coding

Babylon堆叠游戏:合法合并与记忆化胜负状态:同高度或同顶色才能叠,减少堆数保证游戏终止。

Coding

按数量种连通作物:Hamiltonian蛇形路径连续分段:矩形以及纵向/横向对齐的两正方形,都先构造相邻遍历序列。

Coding

次数/值列表原地展开与Iterator:同一对象和辅助空间:处理零次数与缩短/扩大输出,先保证正确,再讨论线性约束。

Coding

海拔网格共同可达最高点:水流方向先说清:两个搜索集合求交并取最高,供水与汇流是相反方向模型。

Coding

水平线平分正方形总面积:事件斜率精确求切点:明确重叠按每个square分别计面积,和几何并集是不同版本。

Coding

最便宜共同祖先:价格目标不是最低深度:节点有parent/children/price,遍历完整共同祖先链寻找最小价格。

Coding

括号加次数解压:递归grammar与输出上限:(subsequence){count}可嵌套,合法例a(b(c){2}){3}d。

Coding

网络延迟:非负有向最短路与最慢接收节点:从单源广播,取所有节点最短到达时间的最大值,有不可达则失败。

Coding

装水先最少桶、再最小最高水量:平均下界与固定首桶:同容量上限、连续液体分配,不是两桶倒水的gcd问题。

Coding

一维奶茶配送:先最大匹配数,再最小总距离:每人/店最多参与一单,距离≤5,排序后DP保留两层目标。

Coding

二叉到N叉LCA:身份、缺失节点和子树标志:每个子树是否包含p/q由位标记汇总,最深同时包含者为答案。

Coding

按整层返回的树Iterator:队列快照和输出成本:hasNext看待处理队列,next一次返回一层,而非一个节点。

Coding

优先级Job与调用次数冷却:ready堆和eligible堆:冷却不是墙钟时间,同一次getJob还需定义是否推进计数。

Coding

N×N多玩家井字棋:三连胜判定与非法操作:玩家轮流落不同单字符,任意方向连续三枚即胜。

Coding

相同数字分组且组大小不同:频次去重判定:每个值恰一个组,不同值的出现次数不能重复。

Coding

最少会议室/租车数及分配:按开始时间复用已结束资源:每笔需求持续占一个资源,半开区间端点相接可以复用。

Coding

每位置后面更小的数量:逆序Fenwick计频:只统计严格小于,重复值不会互计。

Coding

重叠区间XOR为零的三元组:公共端点被抵消两次:明确F(x,y)含两端,x≤y≤z,输出所有满足三元组。

Coding

多层食谱库存:依赖DAG展开并聚合同一原料需求:蛋糕依赖糖,糖再依赖蔗糖,共用原料不能分别验证后忘记相加。

Coding

恰两种无序平方和:枚举a≤b并饱和计数到3:包含a0和a=b,严格s<n,不把第三种表示误当两种。

Coding

黑盒找全部坏数对:两元素查询基线与单坏对区别:is_clean只说集合内是否有坏pair,任意多个关系不能丢一端继续搜。

Coding

洗牌Fisher–Yates:每步选0..i,无偏性靠条件概率:原地生成所有位置排列,重复值仍按原位置身份处理。

Coding

snake_case转camelCase:先确定分隔符与大小写合同:首词不变,后续词首字母大写,非法空段不默默吞掉。

Coding

矩阵转置与90°旋转:维度、稀疏坐标和3D轴:转置不等于旋转,非方阵输出shape也不同。

Coding

送货路线:先最少危险站,再最少步数:第一问完全避开危险节点;第二问按危险数量、步数作字典序优化。

Coding

行星引力区间:合并危险范围后取补集:先确认坐标是实数还是整数、查询边界和区间端点。

Coding

两日日志对象筛选:共同出现且客户至少两种:客户数是跨两日合并还是每日至少两种,需要分开解释。

Coding

三叉树众数与Broken Tree:频数正确性先于排序优化:left小于、middle等于、right大于,但损坏树需要先定义损坏类型。

Coding

按标签匹配回答者与问题:倒排索引及优先队列:先定义任一标签匹配、全部标签匹配和回答优先级。

Coding

任务依赖总时长:无限并行关键路径与M处理器区别:DAG任务持续时间已知,无限CPU时按最晚前驱结束时间启动。

Coding

3×3分组最小值:固定分块与滑动窗口分别验证:每组由九个格子的最小值代表;含1可判无效。

Coding

Request begin/end日志:最早已完成请求优先输出:输出开始和结束时间,堆只能排序目前已收到的完成事件。

Coding

Google Doc行数:换行、空白、长词与字符宽度:给文本和最大宽度,先明确排版是否保留空格及是否按词换行。

Coding

字符流检词并删除:后缀命中、长词优先与连锁删除:每输入一个字符,检查可辨词并从保留流中删掉。

Coding

不相邻取点最大和及下标:DP回溯选择:除最大点数外,返回对应策略的原始位置。

Coding

黑盒距离点集可达:隐式图搜索与二次查询边界:距离严格小于r才有边,cache减少重复但不改变一般最坏阶。

Coding

网格从首行到底行:可达、全部简单路径、权重最短路:三问的目标不同,全部路径输出不能套BFS全局visited。

Coding

储物柜分配与归还:最小空闲编号和最后一次分配:最后分配编号是历史状态,归还不会把它改成当前最大柜号。

Coding

Spreadsheet基础set/get:地址校验与字面值存储:先实现可验证的字面值API,再明确公式等后续需求。

Coding

每日Job同类型重叠共享:按类型并集计算峰值容量:相同Job重叠允许共享,与每个实例独占Server是两种模型。

Coding

纯绿色Wordle:位置字母查询与候选集分割:oracle只回答某位置是否是某字符,字典能帮助减少查询。

System Design

商场多入口人数上限:原子许可与门控故障:多个门同时进出,满员时阻止新进入,保证人数不会超限。

System Design

Customer内部服务:数据库、惰性枚举、缓存与并发:返回客户信息时要定义结果何时读取、数据库连接何时释放。

System Design

Gemini Android App设计:会话流、离线草稿与生命周期:从移动端会话状态和流式响应切入,逐层回答架构追问。

System Design

内部多租户Rate Limiter:热点、区域预算与故障策略:内部团队共享限流服务,精度、隔离、可用性和区域一致性需要明确取舍。

System Design

亿级用户全球通知:事件、渠道投递与Fallback:Push、Email、SMS分别记录尝试,定义送达语义和去重范围。

Coding

超大整数文件最大值:流式扫描与并行分块行边界:一行一个整数,文件大于内存时只保存局部最大值。

Behavioral

不同用户群的需求冲突:产品取舍与分群验证:描述如何让产品满足不同用户群,说明改进证据和被排除的人群。

Behavioral

A/B短期获胜但经理担忧长期体验:把分歧变可检验风险:模型实验好,仍需检验长期用户损伤,不靠更大声地争辩。

Coding

打印全部1000位数:输出规模本身就是下界:先算输出数量,再讨论枚举器的有限演示与可行性。

Technical

矩阵特征值:方阵定义、2×2计算与稀疏迭代:转置和旋转是坐标操作,特征值是Ax=λx的谱问题。

Technical / Simulator Design

C++ CPU Simulator设计:时间推进、精度与优化:区分cycle/event驱动与cycle-accurate/approximate两个独立维度。

Technical / Simulator Design

Branch Predictor模块:预测、训练与错误路径恢复:模块接口要区分预测时刻、分支解析、提交与squash。

Technical / Simulator Design

Cache地址分解与缺失成本:容量、关联度和冲突:解释cache时先明确line、set、way及替换/写策略。

Technical / Simulator Design

MSHR:合并同Line缺失与非阻塞Cache背压:未完成缺失需要状态,同line后续请求和新line占用不同资源。

Technical / Simulator Design

MOESI:脏共享所有者与写权限转移:先解释稳定状态,再分析消息中的过渡状态与并发。

Technical / Simulator Design

VIPT Cache:并行TLB查询、页内索引与别名:虚拟索引和物理tag让访问重叠,但索引超出页内偏移需额外处理。

Technical / Simulator Design

TLB与Page Walk:翻译缓存、权限和跨核失效:TLB miss先walk,不等同page fault;PTE修改后还要撤销旧翻译。

Technical / Simulator Design

ROB与精确异常:乱序执行、顺序提交和回滚:执行完成不等于架构状态已提交,错误路径要能取消。

Coding

最近喜爱城市:同一最短层全部返回:地图起点到喜爱集合的最短距离可能并列,需要返回全部。

Leadership

没有汇报关系的团队:如何推动技术改变:讲影响机制、对方利益与可逆试点,而非用职级压服。

Leadership

最重要技术决策:选择、风险和可追溯责任:说明为什么做这个决定、有哪些备选,以及后来发现哪些地方错了。

Leadership

系统事故处理:止损、指挥、沟通与复盘:把恢复服务和查明原因分开,说明自己如何协同而不是单人救火。

Coding

0/1背包:每项最多一次,逆序容量防重复:容量受限选最大价值,和完全背包的状态更新方向不同。

Coding

完全背包:物品可重复,正序更新接纳当前项:沿容量正序传播,使同类物品能取多份。

Coding

二叉树右视图:每层最右节点,而非全右链:有的层右子树缺失时,左子树节点仍可见。

Coding

聊天日志次数TopK:计事件与不同联系人分开:按聊天次数排序用户,明确一条事件计谁和并列规则。

Coding

手写JSON序列化:字符串转义、递归容器与循环:键是字符串,值可以字符串、列表和字典。

Coding

课程依赖:可完成判断与一种拓扑顺序:Course Schedule变体先落在明确DAG训练合同,不推定额外条件。

Coding

每格到最近Taxi:多源BFS与上下线重算:新增源可下降距离,删源会使距离上升,更新不能完全对称。

Coding

Insert与任意第K大:O(1)查询把成本移到插入:重复值算独立位置,k从0开始。

Coding

恰有X场会议的全部区间:按事件差分扫描:不是仅求最高并发,也不是仅X=1。

Coding

选手可确定排名:传递闭包与总序一致性:与所有其他选手的胜负都能推导时,排名才唯一。

Coding

IP频率Top10及并列分组:第十名与十个频次层不同:返回(freq,IP列表)时先定义截止边界是否扩大。

Depth Notes

Google 专项深挖

把题型清单继续拆成面试官会追问的能力证据,避免只停在关键词层面。

算法证明

Google 算法题要能解释为什么成立

不只是写出代码,还要能解释为什么二分/Dijkstra/贪心成立,以及什么条件下会失败。先说暴力解的复杂度,再逐步优化到最优解,每个步骤都要说明不变量。面试官更看重你能否证明正确性,而不是直接给出最优解。

数据结构

O(1) 约束下的数据结构实现要处理边界

CoolMap 要求 put/get/putAll 的 O(1) 复杂度。先设计基础版本,再把 delete 和历史读取作为自设训练追问;每加一项都重新说明复杂度,不能默认历史读取也能 O(1)。

Team Match

Team Match 要把项目映射到团队方向

不要泛泛说“我能做 X”。更好的做法是提前研究团队做的产品/技术,把自己的项目经历拆成 impact、trade-off、failure 四段,然后主动说明为什么你的技能能帮到他们的具体目标。准备 3 个不同版本的项目故事,分别对应技术深挖、影响力和团队匹配。

Prep Plan

建议准备路线

先定位轮次,再决定优先补题型、项目、设计还是表达。

01

用高频题型训练从暴力解到最优解的推导,而不是只背最终答案。

02

准备 3 个项目版本:技术深挖版、影响力版、团队匹配版。

03

面试前 48 小时集中复盘边界条件、复杂度、follow-up 和英文表达。

覆盖岗位

Google 常见目标岗位

SWEMLEDS
覆盖轮次

建议重点模拟这些轮次

OAR1/R2 CodingVOSystem DesignTeam Match

代面服务

Google 代面(代面试)服务

针对 Google 的轮次结构定制:技术轮老师现场作答、你露脸对口型,项目深挖与 BQ 提前准备到位。

Google(谷歌)全流程通常 OA → 两轮 Coding → VO(含 System Design 与项目深挖)→ Team Match,L4+ 会加系统设计、项目深挖和行为面。

  • Coding 轮:算法题要讲 invariant、正确性证明和复杂度——老师现场作答,你对口型
  • VO / System Design:项目深挖内容(impact、协作、数据规模)提前整理成完整问答
  • Team Match:提前把项目经历映射到目标团队方向,陪你打磨表达

$499/轮 起 · 多轮连面有打包价 · 建议面试前 3-5 天准备

实时辅助

Google SWE 辅助(实时)

面试官提问后 0.5-1 秒出答案,你露脸照着念。按 Google 的题型和节奏给话术。

Google coding 重「解释为什么成立」——invariant、复杂度、边界都要说得清楚,实时辅助最擅长这种表达型题目。

  • Coding:主解 + 复杂度证明 + 边界处理实时给出,你边写边读
  • System Design:框架(规模估算 → 数据模型 → 瓶颈 → 取舍),你按框架讲
  • Team Match:表达框架(项目 → 团队匹配 → impact),你按框架讲

$299/轮 起 · 建议面试前 2-3 天准备并做一次模拟

OA 代写

Google OA 代写

收到 OA 但没时间刷题?发过来,按你收到的具体 OA 题型报价。

Google 的 Hiring Assessment(OA)通常是 coding + 算法题,限时严格。收到 OA 但没时间刷题?发过来,从题目分析到完整方案全程代做,限时窗口内交付。

$199 起 · 提前 1 天准备 · 限时窗口内交付

Company Comparisons

常被一起比较的公司攻略

如果你同时投递多家公司,可以用这些相邻攻略比较轮次、题型和评分重点,避免用一套准备方法硬套所有公司。

FAQ

Google 面试常见问题

常见问题

Google 的证明型 Coding 是什么意思?

Google Coding 不只是写出答案,还要证明为什么对、复杂度为什么够、follow-up 改约束后怎么调整。面试官会问'你怎么证明这个算法是正确的'、'如果数据量翻倍复杂度怎么变'。建议练证明型思路,而不是只背题解。

常见问题

Google 面试最看重什么能力?

Google 偏重算法深度、证明能力、Googleyness(文化匹配度)和通用问题解决能力。Coding 要能证明复杂度,System Design 要能处理数据规模和算法优化,Behavioral 面考察 Googleyness 和文化匹配。

常见问题

Google 面试需要准备多久?

建议至少提前 8-12 周开始系统准备。前 2 周练证明型 Coding,中间 4-6 周做算法深度训练和 System Design 模拟,最后 2 周集中练 Googleyness 和行为面表达。

常见问题

Google 面试的 Googleyness 是什么?

Googleyness 是 Google 独有的文化匹配度考察,包括谦逊、协作、好奇心、适应力等。Behavioral 面试中面试官会问'你如何处理与同事的分歧'、'你如何从失败中学习'。建议准备体现协作和成长型思维的故事。

常见问题

Google 面试辅助适合哪些岗位和轮次?

Google 面试辅助会按岗位、level 和实际轮次制定准备计划,覆盖 SWE、MLE、DS 等常见岗位,以及 OA、R1/R2 Coding、VO、System Design、Team Match 等环节。通常先用题型诊断与模拟面试定位短板,再集中训练表达、边界测试、项目深挖和关键 trade-off。

常见问题

Google 面经应该怎么看?

同学提供的面经适合用来判断 Google 高频题型、轮次和常见挂点,但不要只背原题。更稳的做法是把面经拆成 OA / Coding / Design / Behavioral / HM 五类信号,再按目标岗位和 level 做限时训练。

常见问题

Google 代面、面试辅助、OA 代写多少钱?

Google 代面(对口型)$499/轮起,多轮连面有打包价;SWE 辅助(实时)$299/轮起;OA 代写 $199 起,提前 1 天交付。最终价格按岗位、轮次和具体面试情况浮动,添加微信 interview_coach_pro 先聊 30 分钟免费咨询再报具体价格。

AC
Software Engineering
Alex Chen·前 Meta / Stripe Senior SWE & Tech Lead

10 年+北美 SWE 经验,先后在 Meta(FAIR / Infra)和 Stripe 担任 Senior SWE 和 Tech Lead,主导过多项高并发系统架构设计,前 FAANG 面试官,累计面试 1000+ 候选人,熟悉 Meta / Google / Stripe 面试评分标准。

累计面试 1000+ 候选人UC Berkeley, CS 硕士
本文由 Alex Chen 审校与整理

需要按 Google 的具体岗位做冲刺计划?

添加微信 interview_coach_pro,发送岗位、level、轮次和日期,我们先判断最该补的环节。

查看服务与价格 →查看其他公司
✓已复制微信号!