最近看到有說法認為 Uber 的SDE面試比較“水”,但是親身經歷下來並不是這樣的。整個流程很緊湊而且有一定難度,特別是OA和電面。 準備 Uber OA 不僅要掌握資料結構和演算法,還要合理安排時間與答題順序。下面是綜合多位候選人真實反饋整理出的覆盤指南。
Uber OA 基本情況
Uber OA 通常透過線上平臺完成,需要在限定時間內完成多道演算法程式設計題。特點如下:
- 平臺型別:CodeSignal 或 HackerRank 型別的線上評測
- 題量:一般 3~4 道 coding 題
- 時長:約 70 分鐘
- 內容:演算法與資料結構、邊界條件處理
整體難度浮動較大,有反饋稱包含 Medium/Hard 題,也有候選人認為難度適中。由於隨機性較高,既要穩紮基礎,也要能應對相對難題。
Uber OA – 70分鐘
形式:70分鐘內完成4道coding題。
難度分佈:個人感覺是2道Easy,1道Medium,1道Hard(我遇到的Hard是第3題)。
體驗:時間非常緊張。整體難度梯度明顯,Hard題有一定挑戰性。建議先解決Easy/Medium題,確保拿到基礎分,最後再攻堅Hard題。如果一開始卡在難題上,比較容易容易心態不穩而且時間也不太夠用。考察型別比較經典,可以嘗試提前針對性刷題(類似題目網上可以找到)。
今年秋招變化不大,還是四個coding,一般是兩道基礎,兩道medium,偶爾有hard,一般就是貪心,dp,滑動視窗的題,簡單說一下今天這場,先發兩題,這次四個coding都順利AC,70min時間緊,手速要快,題目難度浮動挺大的。
Uber OA Question 1
給定一個無向樹,先移除一條邊,得到的兩個子樹的和之間的差異,求這個最小差值。
思路:先計算整棵樹所有節點的權重和total,再用dfs遍歷樹,計算每個節點的子樹和subtree_sum,歷遍所有邊,每條邊計算刪除這條邊後形成的兩個子樹權重和差異,記錄最小值。
Uber OA Question 2
根據公交發車時間表和當前時間,確定自上次公交發車以來經過的時間。
思路:先把所有時間轉換成分鐘數方便計算。歷遍發車時間表schedule,保留所有早於等於分鐘數的班即已發車,並儲存為分鐘數列表。如果沒有發過車,就返回 -1。否則,計算當前時間和最近一班車發車時間的差,就是等了多久。
2. Phone Screen – 約45分
形式:面試官風格比較直接,自我介紹後立即切入正題。
重點:深度挖掘resume專案。面試官要求我從啟動背景、設計思路、技術選型、遇到的挑戰&解決方法以及成果和覆盤等多個不同角度詳細介紹了一個project。整個過程中會不斷follow-up細節。
體驗:壓力相對較大,問題細而且節奏快。面試前要徹底覆盤熟悉resume,確保能清晰、有條理地闡述peoject的細節,並能應對deep dive。準備不足容易在這一輪卡殼。
3. Onsite – 5輪,每輪約45分鐘
輪次安排:總共5輪,中間大概半小時休息。面試官很專業,溝通氛圍友好。
輪次內容:
- Round 1 (Coding): 標準的演算法與資料結構考察。題目難度中等偏上,需要清晰溝通思路,寫出清晰程式碼並透過測試用例。
- Round 2 & 3 (System Design): 繼續深入探討resume上的project,比電面細緻很多。涉及到了系統設計、技術權衡、擴充套件性、故障處理等。有些問題會根據project進行延伸,看面經好像是視級別而定。
- Round 4 (HM): 這一輪比較注重軟技能和JD匹配度。內容主要是一些經典問題,部門業務介紹、團隊目標、職業規劃、個人優勢與劣勢分析、過往在學校/工作中的協作與解決問題例項等。由於前面project聊得比較透,這輪反而感覺很順暢。
- Round 5 (culture fit): 主要考察BQ、團隊合作、Uber價值觀匹配。
常見誤區
- 只刷 Easy 題,無法保證總分優勢
- 忽略邊界條件,容易導致 Wrong Answer
- 在難題上耗時過久,導致基礎題無法完成
Uber 面試體驗
現場面試強度很高,連續5輪對精力和專注力是很大考驗,會感到疲憊。但面試官普遍比較Nice,會營造輕鬆的討論環境。 Tech輪要紮實基礎,並且可以清晰斷表述,resume上的項目要經得起反复推敲。
ProgramHelp提供專業的OA代做,面試代面、面試輔助服務,如果你也需要我們的Uber OA代做、面試輔助服務,請立即聯繫我們!