目录
正在加载目录...

Google 面试 经验分享BQ+Code | 一亩三分地

Google 面试 是2次面试,每次两轮面试,目前第一次是线上面试,通过后需要Onsite,就是第一次约个时间,然后通过第一轮面试后,再约第二轮面试,再通过才有最后的Onsite,也就是飞机飞到公司去面试。

但这个环节,每个公司还是有不同,Google是背靠背2轮,也就是第一轮45分钟结束完,休息15分钟马上第二轮45分钟,如果你面试的结果是一轮过一轮不过,HR还会联系你提供第三轮Phone Interview,但一般公司是没有第三轮的。

Google 面试时间线

Google 面试 时间线

9.6 收到OA,两题全通过

10.14 Recruiter reach out,主要沟通了毕业时间,签证情况,以及需要多久准备面试

10.23 interview prep call,告知每轮面试的内容,以及面试安排

11.11 两轮线上VO,一轮Code,一轮BQ

12.11 通知开始Onsite面试

12.14 Onsite两轮面试

1.12 hm告诉我Move forward

Google 面试 第一轮 :BQ

这轮开始先聊了五分钟简历后,简单自我介绍就是BQ了,问了几个比较简单常规的BQ,这里整理了下Google面试的几道经典BQ题目。

1️⃣ 请讲述一次你为客户做出“超出职责范围”付出的经历。

你为什么要这么做?最终结果如何?

参考回答:
我认为并不存在所谓“超出职责范围”的事情。我的职责就是让客户满意,因此在任何情况下,我都会把尽力帮助客户视为自己的个人责任。可以举一个例子,比如为了彻底解决问题、确保客户对结果满意,我多次主动联系客户、反复跟进,直到问题真正解决。

2️⃣ 请讲述一次你在一件对业务非常重要的事情上,与你的经理存在强烈分歧的经历。

分歧是什么?你是如何处理的?

参考回答:
当你与经理产生分歧时,最有效的方式通常是说服他先对你的想法进行“小规模试验”。即使经理对新想法或变更持抵触态度,他们往往也愿意接受一次小范围测试,以验证想法是否可行。可以举一个你成功说服经理先做小型试点的例子,在经理看到结果后,最终支持了你的方案。

3️⃣ 你是如何确保团队始终与公司的愿景保持一致的?

参考回答:
沟通是关键。你需要始终与团队保持密切联系。通过每周例会和状态同步,确保团队目标与公司方向保持一致。当我发现个人目标与团队或公司目标存在冲突时,我会主动与该成员坐下来沟通,尝试一起解决冲突,而不是简单地下指令。(直接命令对方只会让他产生抵触情绪。)

4️⃣ 请举一个例子:

你在一次会议中对同事和领导持有“非主流意见”,甚至是唯一反对者。
当时是什么情况?你为什么坚持自己的立场?你是如何处理的?

参考回答:
在一次产品发布前,我们讨论客服支持团队的规模。管理层和其他成员认为将 SLA 设为“每个请求最多 1 小时内回复”已经足够。但我认为客户体验对我们至关重要,因此建议将 SLA 缩短到 30 分钟,这意味着需要将客服团队规模扩大一倍。尽管预算有限,我仍坚持这一立场,并清晰说明理由。

5️⃣ 你通常采取哪些措施,确保你完成的项目能够顺利交接给新的负责人?

请举一个你在项目已完成交接后,又选择重新介入的例子。情况是什么?你为什么觉得有必要重新介入?

参考回答:
非常重要的一点是:从项目第一天起就养成完善文档的习惯。我曾负责一个项目,项目顺利交付后交接给业务负责人并进入维护阶段。三个月后,我开始发现一些之前未暴露的问题,并意识到可能有关键内容被遗漏,或者某些访问权限配置不正确。借助我之前编写的文档,我能够帮助新团队在很短时间内定位并解决问题。

6️⃣ 请谈谈你是如何在团队中建立彼此信任的合作关系的。

参考回答:
良好的沟通以及“我始终支持你”的态度非常重要。同时,你也需要以身作则。当团队成员看到你勤奋工作、认真负责时,自然会建立起相互尊重与信任的关系。

7️⃣ 在与客户打交道时,几乎每个人都会有感到沮丧或不耐烦的时候。

请讲述一次你有这种情绪的经历,以及你是如何应对的。

参考回答:
这种情况经常发生。你需要展示自己不会失去耐心,并且能够很好地处理复杂局面。我的做法通常是:先暂停一下,退一步思考,分析这件事情会影响哪些人、问题产生的原因以及解决方案。
举个例子:有一次,为我们提供产品规格的团队临时对需求做了彻底修改,但管理层(在这个案例中相当于客户)仍然要求在一个月内交付产品。我冷静分析了情况,用数据支撑(数据永远很重要)向管理层提交了一份报告,并提出两个选择:要么延后交付日期,要么砍掉部分功能。最终,在看到数据和分析后,他们愿意配合并达成共识。

Google 面试 第一轮 :Code

题目:给定两条按时间排序的时间序列,每个点表示从该时间起数值发生变化,要求输出一条表示逐点相加后的时间序列,仅在数值变化时输出结果。

示例:

假设存在两条时间序列:序列 A: [(1, 2), (4, 5), (7, 1)]

含义:时间 1 起数值为 2;时间 4 起数值变为 5;时间 7 起数值变为 1

序列 B: [(2, 3), (5, 0), (8, 4)]

含义:时间 2 起数值为 3;时间 5 起数值变为 0;时间 8 起数值变为 4

解题思路

用双指针维护两条序列的当前生效值,初始时指针 i=0(指向序列 A 第一个点)、j=0(指向序列 B 第一个点),每次取两指针指向时间的较小值作为当前处理时间,计算该时间点的相加值,对比上一个输出值,仅当数值变化时输出。

计算该时间点的相加值,对比上一个输出值,仅当数值变化时输出,推进对应时间较小的指针,若时间相等则同时推进两个指针。

这类题很容易踩的隐形坑不在主逻辑,反而在尾部处理上。 一条序列先结束,另一条还在推进的时候,字段一旦写错,可能前面的示例全对,最后直接翻车,我自己复盘后摸索出了几个小思路,分享给大家:先试着把题目看成事件流合并,而不是单纯的数组操作;写完主循环后,我会特意用语言过一遍所有超界的分支情况;另外还会自检一下,确保最后一个时间点能覆盖到所有输入的末尾。

题不算难,但真的很容易掉坑里,一上来就是时间序列相加,看着像双指针,思路很快就理顺了。

了解更多

Google 面试 过程里,面试官更看重解题思路的表达和技术细节的思考,Coding时边写边讲会很加分 Google VO的节奏很稳定,相比其他公司,难度和流程都比较容易掌握。最近也面了Meta、亚马逊、TikTok等公司的VO,基本都顺利通过。每轮下来都比较顺利,没把握的可以多练习。

Interview Aid 专注北美技术岗位的面试辅助,如果你近期也拿到Google的面试,可以与我们联系,我们免费提供Google真题参考。

正文完