11月7号 谷歌-桑尼维尔 onsite

上午刚面完的,4轮coding + 1轮BQ。整体感觉……超乎预期!人品爆发!希望算是对我吃了一年多的苦的报偿吧。不隐藏了,攒rp。主要因为,最近又刷了300多道题,hard也刷过100道了。但是平时看地里和lc谷歌的面经,基本上每看两个面经就能遇到一道那种完全没有思路的或者Corner case极其复杂的;上个月去AMZ还被OOD秒了的……本来做好的打算是今天也至少会遇到一个extreme hard,但是四道题全都顺风顺水,至少都给出正确答案了。所以……今日运势真的好!

第一轮 - 国人哥们:

给出一题:LFU (#460)。行吧,简单讲了一下思路直接写答案。写完还剩8分钟,哥们很开心,开始跟我瞎扯。说我们今年组里招了一个人,也是你们学校的,还和你一届,不知道你认不认识。我说他叫啥呀?哦他叫Peter。行了朋友,这人是我reference :relieved::relieved::relieved:

第二轮 - 国人哥们:

围棋中有一项基本规则是,当一组相连的同色棋子被异色棋子或棋盘边界紧密包围时,这些棋子会就被“吃”掉。给你一个残局,包含场上黑子和白子的坐标,再给你其中一个黑子的坐标{x, y}。写一个算法判断这个黑子是否将被“吃”掉。要求我自己设计输入参数。

详细了解了规则之后用DFS秒解。

之后是午饭时间,由一个美国小哥带着。期间和他谈笑风生,深入学习交流了北美一二线城市年轻一代中产阶级的生活有多么的幸福。餐后登高领略了一下圣克拉拉谷独特的自然与人文风光,观赏了谷歌的各种各样神奇的娱乐设施。午饭吃的不多所以没喝咖啡,导致下半场状态有点不佳。

第三轮 - 国人哥们:(有点感慨谷歌Sunnyvale是不是快被国人占领了)

lc #209的变体,给一个integer array,找出最长的subarray使其元素之和小于或等于某一给定值k。确认了输入元素均为非负数后用sliding window扫一遍即可。

我以为follow up会出包含负数的情况:#862,要用ArrayDeque做。结果他出了一道2D的:

给一个2D matrix,其中元素为非负整数。给一个整数k,找出matrix中最大正方形的面积,使得其中所有元素之和小于等于k。例如:

5 5 5 5

5 1 1 1

1 1 1 1

5 5 5 5, k = 6

则返回4

在他的提示下用了prefixSumMatrix,最后勉强写完了正确答案。

第四轮 - 中亚小哥:

类似Majority Elements #169(找超过1/2的元素), #229(找超过1/3的元素)。他出的这一题找超过1/4的元素(返回任意一个均可),额外条件是array已排序。

给出sliding window的答案,时间O(n),空间O(1)。

小哥表示还可以更快。

诀窍在于符合条件的元素,排过序后长度肯定超过了原数组的1/4。所以找到数组的1/4点: x,1/2点: y,3/4点: z(O(1)),分别在[0, x], [x, y], [y, z]的范围内二分搜索arr[x], arr[y], arr[z]的起始点,记为a, b, c。而后判断if (arr[a + L/4] == arr[a]), if (arr[b + L/4] == arr['b]), if (arr[c+ L/4] == arr[c])一经发现即可返回这个值。

给了思路,但没时间写完。

第五轮 - BQ - 老美:

experience about disagree with your team?

experience about advocate yourself?

experience about taking too much work load?

experience about a challenging project/task and how youcooperate with other team members?

补充内容 (2019-11-12 03:16):
更正一下,第三轮里面longest_subarray_with_sum_at_most_K,包含负数的情况是862题,不是826。抱歉造成了误解!

补充内容 (2019-11-13 00:29):
今天早上收到的消息,面试没过。Lack of coding speed and consistency。都是后两轮害的