💡 Jan 23 内推
💡 Jan 30 收到电面通知
💡 Feb 7 电面
💡 Feb 9 电面过,约 onsite
💡 Feb 17 Seattle onsite
电面(45 分钟)
- 让我 overview 简历的项目经历,我就把项目一个一个的说下去,他感兴趣的会提一些问题。
- 问了两个文化相关的:
- 如果有很多个任务都要 due 了,怎么进行安排取舍
- 有没有遇到过因为观念不同而产生的问题,怎么解决的
- 算法。给定一个数组,返回任意两个数相乘的最大的值。我一开始还想成 LeetCode 152 - Maximum Product Subarray 了,准备用 dp 做就卡了,然后面试官建议我先开始写起来。在写的过程中,我习惯性的先写出了所有的 corner cases ,每一个他都让我提供一个 test case 。突然间一拍大脑想通了,先 sort 再 binary search 找 0 ,再与最前面两个乘积和最后面两个乘积比较,返回最大的。这期间他又让我说几个 test case 。反正写的时候一直在交流,冷不丁问我个什么 sort 最快, int 占几个字节之类。感觉他对时间复杂度很在意,因为老问我。写出来以后竟然也没让我运行。我有一点在意的就是他问这个解法你觉得有哪些不能 exception 不能 handle ,我答了一个 integer overflow ,觉得没答好。我问他这是不是最好的解法,他说不是,但没关系,他就是想看看有没有别的解法。(黑线)
- 最后还有点时间,我问了下他在 Uber 的工作经历,然后聊了一会,就结束了。
我之前看面经都是挺难的题,就感觉运气又挺好的。。
Onsite
一共五轮,一个三哥四个中国小哥,除了第二轮全是问 behavior 的问题,其他套路都是面试官介绍自己的工作,再我自我介绍,然后做题,然后问问题。
第一轮竟然先问了我网络的问题,就是我在浏览器搜索以后整个流程是怎么样的,这实在是没有准备过,之前学的竟然又忘了,怪自己。代码题目我竟然忘了。
第二轮 Hiring Manager 简历的项目都问了,但是不是很细,就胡扯过了。why uber, why uber chooses you.
第三轮 设计 + merge 。用一个 timeline 同时展示 twitter 和 Instagram 的内容,先设计了数据结构,然后 merge 。Follow up 是如果有很多 source 要怎么 merge 。就是 mergeSort 的应用版。这是唯一在网上写然后跑的题。但我时间复杂度后来想想好像说错了。还问了电面的问题,如果同时有多个 deadline 怎么进行选择,举个自己的例子。
午饭。两个 recruiter 一起吃,实在是太热情了,我都不好意思大口吃饭。还有另一个一起面试的小哥,这边感觉讲话口音不一样好难懂啊。
第四轮 n x n 数独 。方法和 LeetCode 37 - Sudoku Solver 类似,不过写起来实在是太麻烦了,小哥都看不下去了,就直接在 board 上进行 valid check 。
第五轮 LeetCode 341 - Flatten Nested List Iterator 更简单一些,就是返回展开后的 List 。我一开始直接用的递归,这题我做 LeetCode 的时候是没做出来的。。然后小哥让我用 Stack 再做一遍,我这笨脑袋一时间又没转过弯来卡了半小时,后面问大哥已经表示了反差的小失望,感觉跪跪的。然后一直在问我有什么情况会 break 你的 algorithm ,我答不上来,问他又说你以后工作了就会明白的。
总的来说题不难,我反思自己的基础还是不够牢固,继续努力呀。
Read full article from Uber 面试及准备|BIG MEOW
No comments:
Post a Comment