Amazon ng 一畝三分地 | Amazon OA 新鮮面經分享 | 13 分鐘過兩道題

216Views

Amazon 的 New Grad (NG) 岗位竞争在 2025 年达到了白热化阶段。根据 Amazon ng 一亩三分地 相关帖子反馈,今年的 OA 呈现出一个显著趋势:不再追求极端的 LeetCode Hard 难度,而是极度看重代码的鲁棒性(Robustness)和对边界条件(Edge Cases)的处理。

近期,我们的一位学员在 13 分钟内完美通过了 HackerRank 平台的两道编程题。这并非运气,而是对 Amazon 考察模式(Pattern Recognition)的精准降维打击。本文将深度复盘这套题目,并分享高效解题的底层逻辑。

Amazon ng 一畝三分地 | Amazon OA 新鮮面經分享 | 13 分鐘過兩道題

Amazon OA 考察形式与评分标准

Amazon 的 OA 流程通常包含三个部分,其中 coding 是第一关,也是最硬的门槛。

  1. Coding Assessment (70 mins): 2 道编程题。
    • Expert Insight: 仅仅 Pass Test Cases 是不够的。Amazon 的后台评分系统会检测你的代码复杂度、变量命名规范以及是否存在多余的逻辑。
  2. Work Simulation (SJT): 模拟真实工作场景的选择题。
  3. 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)。求最少需要多少個連通塊(即合併後獨立的區間段)。

核心思路

  1. 先將所有區間按 start 排序併合並重疊/相鄰區間(經典 Merge Intervals)。
  2. 合併後得到若干獨立段,計算相鄰段之間的 gap。
  3. 對所有 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!」郵件。

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