Uber 面试及准备|BIG MEOW



Uber 面试及准备|BIG MEOW

💡 Jan 23 内推
💡 Jan 30 收到电面通知
💡 Feb 7 电面
💡 Feb 9 电面过,约 onsite
💡 Feb 17 Seattle onsite

电面(45 分钟)

  1. 让我 overview 简历的项目经历,我就把项目一个一个的说下去,他感兴趣的会提一些问题。
  2. 问了两个文化相关的:
    • 如果有很多个任务都要 due 了,怎么进行安排取舍
    • 有没有遇到过因为观念不同而产生的问题,怎么解决的
  3. 算法。给定一个数组,返回任意两个数相乘的最大的值。我一开始还想成 LeetCode 152 - Maximum Product Subarray 了,准备用 dp 做就卡了,然后面试官建议我先开始写起来。在写的过程中,我习惯性的先写出了所有的 corner cases ,每一个他都让我提供一个 test case 。突然间一拍大脑想通了,先 sort 再 binary search 找 0 ,再与最前面两个乘积和最后面两个乘积比较,返回最大的。这期间他又让我说几个 test case 。反正写的时候一直在交流,冷不丁问我个什么 sort 最快, int 占几个字节之类。感觉他对时间复杂度很在意,因为老问我。写出来以后竟然也没让我运行。我有一点在意的就是他问这个解法你觉得有哪些不能 exception 不能 handle ,我答了一个 integer overflow ,觉得没答好。我问他这是不是最好的解法,他说不是,但没关系,他就是想看看有没有别的解法。(黑线)
  4. 最后还有点时间,我问了下他在 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

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts