四月份最新的 Amazon OA 來了,相比去年,亞馬遜明顯在增加一些需要現場觀察和推導的題型,純靠背模板已經越來越難吃到滿分。這次依然是標準配置: Amazon OA Hackerrank (平臺), 2道coding題 + 70分鐘左右(部分角色還會出現Work Simulation)。我把4月出現頻率較高的真題整理出來,幫大家快速準備。

4月 Amazon OA 整體配置(最新)
平臺:HackerRank
題量:2題
時間:70min(部分場次60min)
常見組合:
- 1 道中等(偏思維)
- 1 道中等偏上(偏實現 + 細節)
注意:幾乎沒有純簡單題
最少安全組數量
題目翻譯
一家金融服務公司向 AWS 請求部署其私有云網路。考慮到公司業務的敏感性,AWS 還建議他們新增一種特定型別的安全系統。
網路中共有 n 臺伺服器,第 i 臺伺服器的安全需求由 security[i] 表示,其中每個元素代表該伺服器的安全防護等級。
為了確保最高階別的防護,AWS 安全團隊在設計安全系統時遵循以下規則:
- 同一個安全組內的所有伺服器,安全等級必須完全相同;
- 任意兩個安全組內的伺服器數量,差值不能超過 1。
給定一個整數陣列 security,請計算為保障網路安全所需的最少安全組數量。
示例
輸入:n = 6,security = [2, 3, 3, 3, 2, 1]
分組方案如下:
- 等級 1:1 臺伺服器 → 1 個組
- 等級 2:2 臺伺服器 → 1 個組
- 等級 3:3 臺伺服器 → 2 個組(每組 1-2 臺,差值≤1)最終需要 4 個組。
函式要求
完成函式 findMinimumGroups(security),輸入為整數陣列 security,返回最少需要的安全組數量(整數)。
思路
統計各等級頻率,從最小頻率向下列舉基礎組大小S,若各頻率均可由S和S+1組成則累加組數
最大安全庫存總量
題目翻譯
作為汽車製造公司的物流經理,你負責將貨物儲存在安全倉庫中。
給定一個長度為 n 的陣列 deliveryLogs,其中第 i 個元素代表第 i 批貨物的零件數量;同時給定一個偶數 k,代表可用的安全倉庫數量。
貨物儲存規則如下:
- 每個倉庫只能儲存來自同一批貨物的零件,不同批次的貨物不能混存;同一批貨物的零件可以拆分到多個倉庫。
- 儲存完成後,貨物數量最多的 k/2 個倉庫會被入侵,無法計入安全庫存。
- 剩餘的 k/2 個倉庫是安全的,只有這些倉庫裡的貨物會被計入安全庫存。
你的任務是:計算最大可實現的安全庫存總量。
示例
輸入:n = 4,deliveryLogs = [3, 5, 9, 6],k = 4
如果將每批貨物單獨存入一個倉庫,倉庫庫存為 [3,5,9,6]。
此時貨物最多的 2 個倉庫(9、6)被入侵,剩餘安全庫存為 3+5=8。
(最優方案可得到更高的安全庫存,需透過拆分批次實現)
函式要求
完成函式 secureMaximumDeliveries(deliveryLogs, k),輸入為整數陣列 deliveryLogs 和整數 k,返回最大安全庫存總量(整數)。
思路
利用貪心策略,透過列舉可能的中位數水位X,計算每個記錄能拆出多少個容量為X的塊及餘數,取前k大塊求和S,最大化 S – (k/2)*X 的值
虛擬機器租賃總收益
題目翻譯
在 Amazon EC2 中,共有 n 种虚拟机(VM)类型,每种类型有一定数量的可用实例。
每次租赁一个 VM 实例时,客户需要支付的费用等于:
所有 VM 类型中最小的非零可用数量 + 所有 VM 类型中最大的可用数量
共有 m 个客户依次前来租赁。每个客户始终选择当前可用数量最多的 VM 类型进行租赁;租赁后,该 VM 类型的可用数量减 1。
请计算完成所有租赁请求后,累计获得的总收益。
示例
輸入:n = 3,vmStock = [0, 2, 4],m = 4
模拟租赁过程:
表格
| 客户 | 选择的 VM 类型 | 费用(最小非零 + 最大) | 租赁后剩余库存 |
|---|---|---|---|
| 初始 | – | – | [0, 2, 4] |
| 1 | 3 号(4 个) | 2 + 4 = 5 | [0, 2, 3] |
| 2 | 3 号(3 个) | 2 + 3 = 4 | [0, 2, 2] |
| 3 | 2 号 / 3 号(2 个) | 2 + 2 = 3 | [0, 1, 2] |
| 4 | 3 号(2 个) | 1 + 2 = 3 | [0, 1, 1] |
总收益:5 + 4 + 3 + 3 = 15,因此答案为 15。
函式要求
完成对应函数,输入为 VM 库存数组 vmStock 和客户数 m,返回总收益(整数)。
思路
拿一个有序结构存库存和频次,每次取最小key和最大key,加起来,最大key的库存减一,减到0就删掉。循环m次完事。
包裹标签最大拆分份数
題目
亚马逊的一个团队需要确保所有包裹按标签正确排序。每个包裹的标签是一个大写英文字母,所有标签组成字符串 packages,其中第 i 個字元代表第 i 個包裹的標籤。
為了最佳化排序流程,團隊需要分析字串的每個字首(長度從 1 到 n),計算該字首最多能被拆分為多少個相等的部分,拆分需滿足:
- 每個部分中,每個字元的出現次數,必須與其他所有部分完全相同。
給定字串 packages,請對每個字首長度 t(1 ≤ t ≤ n),計算該字首滿足條件的最大拆分份數。
示例
輸入:packages = "ABAB"
各字首的計算結果如下:
表格
| 字首長度 | 前缀字符串 | 說明 | 最大拆分份数 |
|---|---|---|---|
| 1 | A | 单字符无法拆分 | 1 |
| 2 | AB | A、B 各出现 1 次,无法拆分为多份 | 1 |
| 3 | ABA | A 出现 2 次、B 出现 1 次,无法拆分 | 1 |
| 4 | ABAB | A 出现 2 次、B 出现 2 次,可拆分为 2 份(”AB”+”AB”) | 2 |
函式要求
完成对应函数,输入为字符串 packages,返回一个长度为 n 的数组,其中第 i 个元素代表前缀长度为 i+1 时的最大拆分份数。
思路
枚举可能的分段长度(必须是总长的因数),检查每段字符频率是否相同。每个位置维护一个最大段数,最后输出列表。
Amazon OA Hackerrank 冲刺阶段建议
如果你正在准备亚马逊SDE1、SDE2或Intern 2026 OA,这些高频题吃透后,通过率会显著提升。4月题目整体思路清晰,但需要较强的临时分析能力。
需要这些题的详细思路、Python/Java完整代码、更多变体,或者其他大厂(Meta、Google、字节、微软等)最新OA真题,或者咨询Programhelp的 OA輔助服務 都欢迎留言或私信。我会根据你的具体情况给出针对性建议。
祝大家4月及后续的亚马逊OA顺利通过,早日拿到心仪的Amazon Offer!继续加油~