目录
正在加载目录...

Google面经 | 谷歌Google SDE R1 面经 已收到R2通知 | Google 一亩三分地

上周五刚刚面的谷歌R1两轮,已经收到R2的通知了,分享一下技术面的 Google面经 。Google的Coding使用的是完全纯文本的编辑器,没有任何运行或调试工具。所以interviewer通常会要求你在没有执行环境的情况下进行 dry run,也就是逐行推演代码的行为、指针的移动方式以及数据结构在每一步的变化。建议提前在纸上练习这类推导。

Google第一轮VO

Coding题目是设计一个测试自动化框架的关键组件,用于验证数据随时间变化的系统行为(如电商网站的商品价格变化)。测试代理需要访问一个”真实数据源”(Source of Truth, SoT),这是一个按时间戳排序的记录列表,每条记录包含在特定时间段内有效的信息(如价格)。需要实现方法,接收已排序的查询时间戳列表,高效返回每个时间戳对应的正确记录。

题目可以简单理解为给两个按照时间排序的列表SoT和queries, 对于每一个query, 在SoT列表中查找大于等于他timestamp的最小元素并返回。

解题思路:这题根据SoT和queries的长度可以有两种方法做 设q是queries的长度, p是SoT的长度 1. 如果p >> q, 那么我们在SoT中进行二分, 时间复杂度是O(qlogp) 2. 否则用双指针做, 时间复杂度是O(p + q)

Google第二轮VO

Coding:You’re given array of integers. Please find the length of the longest contiguous non-decreasing subarray。

解题思路:这道题是原题数组是空的就直接返回0,只有一个数字就返回1。接着用两个变量来记录状态,max_len 用来保存我找到的长度,cur_len 用来记录当前正在数的这一段有多长。从第二个数字开始,挨个比较每个数字和它前面的那个——如果当前数字没有变小,就让 cur_len 加1,然后看看是不是要更新 max_len;如果数字变小了,就重新开始数,把 cur_len 设回1。这样一路数到后面,max_len 里存的就是整个数组里最长的那一段连续不下降数字的长度了。

Follow up:Extension part: Now, you can choose a single point on the original array and change the number of that point to any value you want.

面试体验

因为 Google 的题库非常大,interviewer拥有相当高的出题自由度,所以遇到自己不熟悉的题目是常态。大多数情况下,一个面试只会出现一道核心题目,然后围绕这道题追加多个 followup;少数情况下会出现两道题。followup 通常集中在三个方向:加入新的额外约束,让你处理更大规模的数据,或者问如何把你的解法变成真正可用于生产环境的代码。

了解更多

在 InterviewAid 的实际服务中,Google面试辅助服务主要适用于候选人在面试时需要清晰表达思路、Code、System design 技术水平要求高。Interview Aid 的高阶辅助服务主要面向 Senior / Staff 及 L6+ 岗位,尤其适用于 System Design 与复杂项目深挖类面试。

在服务开始前,我们会进行针对性的模拟测试与流程对齐;同时提供整理的服务案例与参考材料,支持提前预约 30 分钟的 Mock,帮助候选人熟悉此服务与不同公司的面试形式。

正文完