Google 的面试会频繁更换面经的题,也就是今天在帖子上看到的面经题,可能明天是能遇到,但是可能后天就换题了。除非运气真的很好能遇到原题,否则这就非常考验基本素养了,只有掌握了问题的本质才能顺利通过 Google 的面试。
面试开始的时候,面试官基本会有一个自我介绍,然后告诉你接下来的 45 分钟会进行一道 Coding(或者 2 道 Coding,那么这种情况下就要把下面的流程时间对应压缩和调整),接着可能会要求面试者进行简短的自我介绍,也可能没有。如果面试官要求了自我介绍,那可以稍微多说一点,不然的话就自己要求加一段自我介绍会比较合适,比如 “Shall I have a quick self introduction? I am XXX from XXX university and am looking for XXX.”
这一步一般会在 1-2 分钟之内结束。
接下来就是做题了,一般会给出题面和 1-2 个样例,就像这个样子(LeetCode 496):
The **next greater element** of some element `x` in an array is the **first greater** element that is **to the right** of `x` in the same array.
You are given two **distinct 0-indexed** integer arrays `nums1` and `nums2`, where `nums1` is a subset of `nums2`.
For each `0 <= i < nums1.length`, find the index `j` such that `nums1 == nums2[j]` and determine the **next greater element** of `nums2[j]` in `nums2`. If there is no next greater element, then the answer for this query is `-1`.
Return *an array* `ans` *of length* `nums1.length` *such that* `ans[i]` *is the **next greater element** as described above.*[/i]
Google 的题很少出现 Hard,基本以 Easy 和 Medium 为主。所以如何分析题目并展示解题思路就成了重中之重,而不仅仅是要写出一个能够运行的代码。
We are asked to have a function, taking two parameters and return a positive integer.
Given a string, the task asks me to have a solution to find the maximum number of substrings that satisfies …
I will define a function to solve this problem. The input is an array with a positive integer indicating the array index, and the output is the sum of …
类似这种问题能不能问?想问就问呗。但是很难聊下去,容易冷场:这些知识储备你会的话还好,能扯两句,万一不会怎么办?Oh I will start learning now?也不需要这么暴露自己的能力吧。听完它平时做什么工作,Oh that’s interesting?万一人家面试官这两天刚好比较 Struggle,Suffering 怎么办…… Sounds boring to me 就更不行了,那你来干嘛的。
所以我个人会常问的问题有:你做过最自豪的项目是什么。不论他回答什么,Google Map 也好,GCP 也好,YouTube 也好,我都可以说,Oh that‘s really an excellent product. I can’t live without it. 我每天吃完饭都要刷 YouTube、我每天出门没有 Google Map 我活不下去了。我最喜欢 Google Map 的离线导航,我前两天去国家公园没有信号我也可以使用它。噢,苹果的这个算法太厉害了,它使得我拍照的时候 XXXX。Amazon 的 AWS 使用体验很棒,快速故障恢复使我在某一次 XXXX。