Uber OA HackerRank 面經分享|Uber Online Assessment 三道真題思路解析

1,607Views

最近我們這邊剛帶一位學員走完 Uber OA 。和之前很多場次一樣,今年不少 Uber OA 已經從 CodeSignal 轉到了 HackerRank 平台。

這場考試的結構其實很典型:3 道 coding 題 + 限時完成。這次我們是遠端即時輔助的方式帶著學員一起做完整場 OA,整體節奏控制得比較穩,大概 30 分鐘左右三題全部完成並通過測試。下面把這場 Uber OA 的題型和核心思路複盤一下。

Uber OA HackerRank 面經分享|Uber Online Assessment 三道真題思路解析

第一題:Python: Lambda Map

題意

題目給一個二維數組,需要將每個子數組處理:先篩選出所有正整數,再將這些正整數平方,最後再回傳新的二維數組。

解題思路

外層用 map 遍歷每一個子數組,並在子數組內部先用 filter 過濾出正整數,然後再用 map 對這些數字進行平方運算,最後把結果轉換成列表回傳。

這題的核心不是演算法複雜度,而是對 Python lambda、map、filter 這些函數式寫法是否熟悉。如果平常習慣用這種寫法,基本上可以用一行表達式完成整個邏輯。

第二題:Node Disconnection

題意

題目給一個字串,每次操作可以刪除一段連續相同的字符,需要計算最少多少次操作可以把整個字串刪掉。

解題思路

關鍵點在於理解操作規則。一段連續相同字元在一次操作中就可以全部刪除,所以問題本質就是統計字串中有多少個連續字元段。

實作時只需要從左到右掃描字串。如果目前字元和前一個字元不同,就表示進入了新的連續段,計數加一即可。整題就是一個線性遍歷,時間複雜度是 O(n)。

這題很多人第一反應會去模擬刪除過程,其實完全沒必要,只要抓住「連續段數量」這個核心就能很快寫出來。

第三題:Purchase Optimization

題意

比較典型的貪心題。題目給出商品價格數組 prices,一個起始位置 pos,以及總預算 amount。

規則是從 pos 開始往後購買商品,只要當前預算可以負擔得起,就繼續購買,累計花費不能超過 amount。當剩餘金額不夠買下一個商品時停止,最後返回一共買了多少件商品。

解題思路

解法就是順序遍歷。從 pos 開始檢查每個價格,如果 amount 大於等於當前商品價格,就進行購買,同時更新剩餘預算並增加計數;如果預算不夠,就直接結束循環。

整個過程就是一個簡單的順序貪心策略,複雜度也是 O(n)。

OA 不熟悉?不用慌

如果你也即將參加 Uber OA,但對這種線上筆試平台不太熟悉,或者對時間節奏、題型把握沒有太大信心,其實完全可以提前找有經驗的人一起準備。我們這邊長期在帶同學做各類公司 OA,例如在 HackerRank、CodeSignal 這類平台上的 coding assessment。覺得自己一個人把握不太穩,歡迎 聯絡我們

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0