12.17 Amazon OA 面經分享|HackerRank 雙題,邏輯 + 資料結構並重

113Views

🇺🇸 Amazon 最近又開始批次發 OA 了,我這場 Amazon OA 是 12 月 17 號收到的,
測試平臺是 HackerRank,2 道 Coding 題,沒有行為面,全程就是硬核做題。

整體感受是:
題目不算偏門,但題幹很長、邏輯繞
如果讀題不仔細,很容易一開始方向就錯
時間壓力不小,寫程式碼之前一定要把規則捋清楚

下面是兩道題的完整覆盤。

12.17 Amazon OA 面經分享|HackerRank 雙題,邏輯 + 資料結構並重

第一題:Server Allocation + Cost Calculation

題意概述

  • 給一個陣列 servers
  • 下標表示伺服器
  • 陣列值表示 當前伺服器可用的空閒例項數量

現在有 m 位顧客,每位顧客 依次 來租伺服器例項,規則如下:

  1. 每位顧客都會選擇 當前空閒例項最多的伺服器
  2. 選擇後,該伺服器的空閒例項數 減 1
  3. 在“選擇之前”,會產生一次 cost
cost = 當前伺服器中
       最小空閒例項數
     + 最大空閒例項數

最終要求:
m 位顧客分配完成後,所有 cost 的總和

關鍵考點

這題表面是模擬,實際上考的是:

  • 優先佇列(Heap)
  • 每一步都要 動態維護 min / max
  • 非常容易寫成 O(nm) 直接超時

正確思路方向(不貼程式碼,但給思路)

  • 用一個 最大堆 維護當前空閒例項最多的伺服器
  • 同時維護一個 最小堆 或者能快速拿到當前最小值
  • 每一輪:
    • 先讀取當前 min + max → 計入 cost
    • 再 pop 最大值,減 1 後重新 push

坑點

  • 多個伺服器空閒數相同的情況
  • 減到 0 之後是否還參與比較
  • m 可能大於伺服器總例項數(是否繼續選)

這道題非常 Amazon 風格:
規則寫得很長,但真正的難點在“你能不能保持狀態一致”

第二題:Warehouses 分組 + 最大化最小半區總量

這道題明顯比第一題難一檔,讀題本身就是第一道門檻

題意拆解

已知:

  • 有若干個 logs
    • 每個 log 有對應的 parts 數量
  • k 個 warehouses(k 一定是偶數

儲存規則:

  1. 每個 warehouse 只能儲存來自同一個 log 的零件
  2. 同一個 log 的零件 可以分散存到多個 warehouse
  3. 如果 warehouse 不夠,可能會有部分 log 的零件無法儲存

儲存完成後:

  • 將 warehouses 按儲存零件數排序
  • 前一半(0 ~ k/2):儲存的零件數 最多
  • 後一半(k/2 ~ k):儲存的零件數 最少

目標

最大化:後一半 warehouses 的零件數總和

也就是說:
不是讓總儲存最多,而是
讓“最差的一半”儘量不差

這題在考什麼?

本質是一個:

  • 資源分配 + 排序 + 貪心 / 二分 / DP 思維
  • 非常像 Amazon 常出的: maximize the minimum / balance the worst case

思考方向(面試官期望)

  • 你要意識到:
    前一半 warehouse 存多少不重要
    關鍵是怎麼“抬高後半部分的地板”
  • 常見思路包括:
    • 二分答案(猜後半最小和能不能達到)
    • 貪心分配小塊優先填後半
    • 控制單個 log 被拆分的方式

這是那種:

寫不完程式碼也沒關係,但思路一定要對

為什麼你需要 ProgramHelp 的OA實時輔助

看完上面的解析,你可能覺得自己懂了。但在實際 OA 倒計時 90 分鐘 的高壓下,面對 HackerRank 黑底白字的 IDE,你真的能保證:

  1. Bug-free: 一次性寫對 Heap 操作,處理好 Edge Cases(比如 max 減小後變成了 min)?
  2. 閱讀理解: 在 5 分鐘內讀懂第二題那個繞口令一樣的需求?
  3. 程式碼查重: 你的程式碼不會和 GitHub 上的一模一樣而被 Flag?

不要拿你的 Dream Offer 賭博。

我們提供的 High-End 服務:

  • 實時螢幕共享輔助 (Screen Share Support): 我們的演算法專家與你實時連線,你在做,我們在看。遇到卡頓,直接語音/文字提示思路和程式碼。
  • 原創程式碼保證: 每一行程式碼都由我們在副屏手寫,符合你的 Coding Style,絕非網上的 Copy-Paste。
  • All Cases Passed: 我們的目標不僅僅是做完,而是全綠。

推薦閱讀 / 備考參考連結:

👉 亞馬遜 SDE OA 全流程覆盤|高頻真題 + 備考建議一次講清
📍 全面介紹 Amazon OA 形式、典型真題和準備策略,是你寫 Amazon 面經時非常好的參考資料。Amazon SDE OA 全流程覆盤|高頻真題 + 備考建議一次講清

👉 Atlassian OA 面經|ProgramHelp 全程語音助攻的真實體驗
📍 ProgramHelp 在 Atlassian OA 中的實戰使用覆盤,可拿來作為“服務實際效果”的參考案例。Atlassian OA 面經|ProgramHelp 全程語音助攻的真實體驗

👉 Jump Trading SDE 面經分享|ProgramHelp 遠端助攻全程陪伴
📍 ProgramHelp 在金融科技公司現場和 VO 面試中的助攻案例分享,對準備量化或 SDE 面試也有啟發。Jump Trading SDE 面經分享|ProgramHelp 遠端助攻全程陪伴

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