Uber SWE New Grad面试题和答案
New Grad Interview Questions & Answers
马上毕业季了,最近好多学弟学妹在问Uber的面试经验,今天就来给大家详细扒一扒Uber SWE New Grad的面试流程和真题,全是干货,建议收藏!
Uber的面试流程通常是:OA -> Virtual Onsite。
OA (Online Assessment)
先说OA,一般是70分钟,2-4道题不等,难度在LC Easy到Medium之间。Uber的OA题库不小,但风格比较固定,喜欢考Array, HashMap, 和一些基本的算法比如Two Pointers, Sliding Window。
给大家来几道经典的OA题感受一下:
1. Two Sum变形
这道题算是LC原题的变种。题目描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。经典解法是用HashMap,Time Complexity是O(n)。
解题思路:
遍历Array,用HashMap来存已经见过的数字和它的下标。对于每个数字,计算它和target的差,如果差值在HashMap里,就找到了。
2. Subarray Sum Equals K
这道题也是LC原题,Uber OA里的常客。题目描述:给定一个整数数组和一个整数k,找到和为k的连续子数组的个数。暴力解法Time Complexity会达到O(n²),很可能超时。
解题思路:
精髓在于使用HashMap来存储前缀和以及其出现的次数。遍历数组,计算当前的前缀和,然后去HashMap里查找`current_sum - k`是否存在。
3. Merge K Sorted Lists
这道题是LC Hard,但在Uber的OA里也出现过。题目描述:合并k个排序的LinkedList。最高效的解法是用Min-Heap。
解题思路:
创建一个Min-Heap,然后把k个LinkedList的头节点都放进去。之后,每次从Min-Heap里取出一个最小的节点,加到结果链表里,然后把这个节点的下一个节点再放进Min-Heap。Time Complexity是O(N log k)。
Virtual Onsite
如果你顺利通过了OA,恭喜你,接下来就是Virtual Onsite了。一般会有3-4轮,每轮45-60分钟。对于New Grad,通常是2-3轮Coding,加上一轮Behavioral。System Design在New Grad面试中比较少见。
Coding Round
Coding Round的难度会比OA高一些,通常是LC Medium到Hard。面试官非常看重你的沟通能力和解题思路。所以,千万不要一上来就闷头写代码。一定要先和面试官沟通,确认你对题目的理解是正确的,然后说出你的解题思路,分析Time Complexity和Space Complexity,最后再开始写代码。
Behavioral Question
Behavioral Question是必考环节,千万不要掉以轻心。Uber非常看重文化匹配。建议大家提前准备一些STAR原则的故事,比如“你遇到的最大的技术挑战是什么?”,“你如何处理和同事的分歧?”等等。BQ的准备比刷题更需要花心思。
好了,今天就先分享到这里。总的来说,Uber的面试还是很有挑战性的,但只要你准备充分,拿下Offer也并非不可能。
#Uber #面试经验 #SoftwareEngineer #NewGrad #求职 #北美求职 #FLAG #大厂 #面经 #LeetCode
