Amazon 的 New Grad (NG) 岗位竞争在 2025 年达到了白热化阶段。根据 Amazon ng 一亩三分地 相关帖子反馈,今年的 OA 呈现出一个显著趋势:不再追求极端的 LeetCode Hard 难度,而是极度看重代码的鲁棒性(Robustness)和对边界条件(Edge Cases)的处理。
近期,我们的一位学员在 13 分钟内完美通过了 HackerRank 平台的两道编程题。这并非运气,而是对 Amazon 考察模式(Pattern Recognition)的精准降维打击。本文将深度复盘这套题目,并分享高效解题的底层逻辑。

Amazon OA 考察形式与评分标准
Amazon 的 OA 流程通常包含三个部分,其中 coding 是第一关,也是最硬的门槛。
- Coding Assessment (70 mins): 2 道编程题。
- Expert Insight: 仅仅 Pass Test Cases 是不够的。Amazon 的后台评分系统会检测你的代码复杂度、变量命名规范以及是否存在多余的逻辑。
- Work Simulation (SJT): 模拟真实工作场景的选择题。
- Work Style Assessment: 性格测试,核心考点是 Leadership Principles (LP)。
Amazon OA 整體難度 & 心得
- 平臺:HackerRank
- 題量:2 程式設計題
- 總時長:70 分鐘
- 我的用時:13 分鐘(T1 8 分鐘 + T2 5 分鐘)
- 難度判斷:Easy-Medium,比一畝三分地上大家傳的舊版 OA 簡單很多
- 考點方向:Interval merge、greedy、sliding window、modulo 分配
Amazon 現在 NG OA 的風格更偏 “你能不能寫對基礎程式碼、處理好邊界”,不是那種卡你心態的 tricky 高頻題。
T1 — Interval Connectivity Reduction
問題描述: 給定 n 個區間 [start_i, end_i],你可以最多新增 k 個新區間(每個新區間長度不超過 limit)。求最少需要多少個連通塊(即合併後獨立的區間段)。
核心思路:
- 先將所有區間按 start 排序併合並重疊/相鄰區間(經典 Merge Intervals)。
- 合併後得到若干獨立段,計算相鄰段之間的 gap。
- 對所有 gap 排序,用 sliding window 或貪心方式用最多 k 個長度 ≤ limit 的區間去覆蓋最大的 gaps,直到無法再減少連通塊。
示例程式碼(Python):
def minimize_components(intervals, k, limit):
intervals.sort(key=lambda x: x[0])
merged = []
for interval in intervals:
if not merged or merged[-1][1] 0 and i < len(gaps):
if gaps[i] <= limit * k:
k -= (gaps[i] + limit - 1) // limit # 需要多少個區間覆蓋這個 gap
i += 1
else:
break
return len(merged) - i
常見容易出錯的地方:一是合併區間前忘了按左端點排序,導致合併出錯;二是算空隙的時候把 start [i+1] 和 end [i] 寫反了;三是滑動視窗的左指標沒正確推進,搞出死迴圈;四是判斷覆蓋長度的時候,漏了 “等於 k” 的情況。
T2 — Maximizing Distinct Hash Values
問題描述: 給定陣列 params(每個位置的權重),你需要構造一個當前值 current,透過 current = (current + i * params[i]) % MOD 累加。求最多能得到多少個不同的雜湊值。
核心思路:
- 最終雜湊值集合大小取決於每次累加後取模的結果差異。
- 為了最大化不同值數量,需要讓累加過程儘可能產生新值。
- 貪心策略:將 params 從大到小排序,優先加權大的項,能更快“跳出”已有的模值範圍。
示例程式碼(Python):
def max_distinct_hashes(params):
params.sort(reverse=True)
seen = set([0])
current = 0
for p in params:
current = (current + p) % (10**9 + 7) # MOD 通常很大
seen.add(current)
return len(seen)
常見容易出錯的地方:一是沒給 param 陣列排序,貪心邏輯就沒法生效;二是沒考慮到 param [i] 等於 1 的時候,取模只能得到 0,沒法生成其他值;三是 current_val 的增長邏輯寫錯了;四是把 “最大不同雜湊值個數” 誤解成了 param 陣列去重後的元素個數。
這套題雖然不難,但對於沒刷過類似 Interval 或 Constructive Greedy 題目的同學,要在 70 分鐘內寫完且 Debug 成功,壓力還是不小的。如果你對 OA 還是沒底,或者馬上要接 HackerRank 的連結了不敢點,看下面
Amazon Leadership Principles (LP) – 被忽視的“隱形殺手”
很多技術過硬的同學掛在了 Coding 後的 Work Simulation 上。Amazon 的 OA 不僅僅是考程式碼,更是考你是否符合 Amazon 的價值觀。
備考重點:
- Customer Obsession: 在做選擇題時,永遠把客戶利益放在 KPI 之上。
- Bias for Action: 在資訊不全時,你是選擇等待完美資料,還是根據現有資料先行動?Amazon 偏好後者(但在風險可控的前提下)。
- Ownership: 不要說“那不是我的工作”,要展示出對整個專案的責任感。
Final 季救命稻草!CS 作業/Project 搞不定?找 Programhelp
想要在激烈的求職季中彎道超車?Programhelp 為你提供從OA到 Offer 的全流程硬核助攻。
針對 OA ,我們採用 ToDesk 遠端無痕操作,支援 HackerRank、Codesignal 等全平臺,承諾 100% 透過率,安全且隱蔽,不過不收費。
在 VO環節,我們提供靈活的解決方案:既有北美 CS 專家透過自研無痕文件提供實時思路提示(涵蓋 Code、BQ、System Design),助你對答如流;也有基於攝像頭與變聲技術的代面試服務,支援“對口型”或“全替”模式,完美解決怯場難題。
更有 全套包 Offer 套餐,承包從 OA、面試到薪資談判的所有環節,一站式服務直到你拿到滿意的 Offer。把專業的事交給我們,你只需準備入職!
NG 的求職真的很殘酷,大家都在搶同一批機會。
但這一屆的競爭不是比誰會更難的題,而是比誰 更穩、更快、更少出錯。
所以如果你現在壓力很大、很焦慮——別急,我們都經歷過。
一步一步來,把 OA 穩住,就是最好的開始。
祝你早日拿到「Congratulations!」郵件。