Amazon 面试题型总结整理:OA、SDE VO、System Design、Applied Scientist 和 Leadership Principles 怎么准备

Amazon 面试题型总结整理:OA、SDE VO、System Design、Applied Scientist 和 Leadership Principles 怎么准备

Amazon 面试准备必须同时看 technical 和 Leadership Principles。近期面经里,SDE/Intern 常见 OA、phone/VO coding;SDE2+ 常见 system design;Applied Scientist 方向则有 ML、项目和研究讨论。Work Style Survey/LP 行为题也常影响整体信号。

本文基于近期公开面经标题和本地整理信号,不代表官方流程。

近期面经信号

  • SDE Intern/NG 常见 OA、coding、VO。
  • SDE2/L5+ 常见 system design + coding + behavioral。
  • Applied Scientist 常见 ML phone screen、VO、project/research discussion。
  • Work Style Survey 和 Leadership Principles 在流程里经常被提到。

面试真题题目合集

下面是 Amazon 相关面经里出现过的题目和题型摘要:

  • Aurora storage architecture。
  • Aurora replication model。
  • WAL / redo recovery。
  • MVCC 和 lock conflict。
  • Consistency / latency / throughput trade-off。
  • Weighted random generator:add(value, weight)
  • Weighted random generator:按权重 sample。
  • Temp sensor system over wide region。
  • OA:primary/backup server memory pairing。
  • OA:让 server computational power 非递减。
  • OA:对连续 segment 增加 x,最小化总增加。
  • S3 system design:upload/download API。
  • S3 design:chunk files。
  • S3 design:backend storage backup。
  • S3 design:datacenter failure。
  • LLM quality validation system。
  • OOD:keyboard + mouse input system。
  • OOD:course registration system。
  • Coding:build graph。
  • Applied Scientist:RAG evaluation。
  • Applied Scientist:ragas metrics。
  • Applied Scientist:expert ground truth vs LLM-as-judge。
  • Project ML follow-up。
  • Leadership Principles:ownership、conflict、failure、customer obsession。

真题整理与分析

Amazon 的题型跨度很大:OA 算法、OOD、AWS infra、数据库内核、Leadership Principles 都可能在同一轮里出现。

真题 1:Aurora / database internals

题目大意:围绕 AWS Aurora 或数据库系统,追问 storage architecture、replication、WAL/redo recovery、MVCC、lock conflict、consistency/latency/throughput trade-off。

考点分析: SDE3 或数据库组候选人不能只答“主从复制”。要能讲 log-structured storage、quorum、read replica、crash recovery、事务隔离级别,以及为什么云数据库把 compute/storage 分离。

真题 2:Weighted random generator

题目大意:实现 add(value, weight)sample(),要求按 weight 比例随机返回 value。

考点分析: 基础解法是 prefix sum + binary search。follow-up 会问动态更新、多次 add、删除、并发读取。可以讨论 Fenwick tree 或 segment tree 来支持更新和采样。

真题 3:OA:服务器 primary/backup 匹配

题目大意:给服务器内存,给每个 primary 找 backup,要求 backup memory 大于等于 primary,计算最多或最优配对。

考点分析: 这是排序 + 双指针/贪心。准备时要说明为什么小 primary 应该先匹配能满足它的最小 backup,避免浪费大资源。

真题 4:OA:让计算能力非递减

题目大意:可以对连续 segment 增加某个 x,目标让数组非递减,并最小化总增加量。

考点分析: 这题看差分思维。遇到 a[i] < a[i-1] 时,需要补足差值,累计操作成本。要小心 segment 操作定义,如果一次操作能覆盖后缀,解法会不同。

真题 5:System design:S3 上传下载 / LLM quality validation

题目大意:设计 S3 类文件上传下载系统,支持 chunk、backup、datacenter failure;也有组问 LLM quality validation system。

考点分析: Amazon 系统设计很看 operational excellence。S3 题要讲 multipart upload、checksum、metadata、replication、read-after-write、一致性和故障演练。LLM quality 题要讲评测集、human label、自动指标、回归检测和上线门禁。

高频题最优解速查

Weighted random generator

最优解思路: 静态权重用 prefix sum + binary search。sample() 生成 [1,total] 的随机数,在 prefix 中找第一个 >= target 的位置。动态更新权重时,用 Fenwick tree 或 segment tree。

复杂度: 静态 sample O(log n),动态 update/sample O(log n)。

面试要讲的边界: weight 为 0;total overflow;随机数区间闭开;如何测试分布是否接近权重。

OA:primary/backup server matching

最优解思路: 排序后双指针。primary 从小到大,backup 也从小到大,给每个 primary 找能满足它的最小 backup,避免浪费大 backup。

复杂度: O(n log n) 排序,扫描 O(n)。

面试要讲的边界: primary 和 backup 是否来自同一数组;一个 backup 是否只能用一次;相等是否满足;无法匹配时返回什么。

OA:让 computational power 非递减

最优解思路: 如果允许对后缀/连续段增加值,核心是差分。扫描数组,遇到 a[i] < a[i-1] 时需要补差值,把后续有效值抬高,并累计操作成本。

复杂度: O(n)。

面试要讲的边界: 操作是任意连续段还是后缀;x 是否必须正数;最终数组是非递减还是严格递增。

S3 multipart upload

最优解思路: 文件切 chunk,每个 chunk 有 upload id、part number、checksum、status。客户端并发上传 parts,服务端完成后合并 manifest。metadata 和 data 分离,跨 AZ/region replication。

复杂度: 上传吞吐取决于 chunk 并发;metadata lookup O(1) 或 O(log n)。

面试要讲的边界: chunk 重试、重复 part、checksum mismatch、断点续传、读写一致性、datacenter failure。

可直接练习的答案骨架

Coding sample:Weighted random generator

import bisect
import random


class WeightedRandom:
    def __init__(self):
        self.values = []
        self.prefix = []
        self.total = 0

    def add(self, value, weight):
        if weight <= 0:
            return
        self.values.append(value)
        self.total += weight
        self.prefix.append(self.total)

    def sample(self):
        if self.total == 0:
            raise ValueError("no values")
        target = random.randint(1, self.total)
        i = bisect.bisect_left(self.prefix, target)
        return self.values[i]

OOD class definition:Course registration

from dataclasses import dataclass, field


@dataclass
class Course:
    course_id: str
    capacity: int
    enrolled: set = field(default_factory=set)
    waitlist: list = field(default_factory=list)


class RegistrationSystem:
    def register(self, student_id: str, course_id: str):
        raise NotImplementedError

    def drop(self, student_id: str, course_id: str):
        raise NotImplementedError

    def get_roster(self, course_id: str):
        raise NotImplementedError

System design:S3-like object storage

flowchart LR
    Client --> API["Object API"]
    API --> Meta[("Metadata DB")]
    API --> Upload["Multipart Upload Service"]
    Upload --> Blob[("Blob Storage")]
    Upload --> Replication["Replication Worker"]
    Replication --> Blob2[("Remote Region")]
    Client --> Download["Download API"]
    Download --> Meta
    Download --> Blob

API design

POST /buckets/{bucket}/objects:initiate
PUT /uploads/{upload_id}/parts/{part_no}
POST /uploads/{upload_id}:complete
GET /buckets/{bucket}/objects/{key}
DELETE /buckets/{bucket}/objects/{key}

Data model

objects(bucket, object_key, version_id, size, checksum, status, created_at)
object_parts(upload_id, part_no, blob_key, checksum, size)
replication_tasks(object_key, version_id, target_region, status)

Amazon 面试里要强调 checksum、multipart retry、跨 AZ/region replication、metadata 和 blob 分离,以及 operational metrics。

题目逐题答案速查

Coding:server primary/backup matching

Sample code

def max_pairs(primary, backup):
    primary.sort()
    backup.sort()
    i = j = pairs = 0
    while i < len(primary) and j < len(backup):
        if backup[j] >= primary[i]:
            pairs += 1
            i += 1
            j += 1
        else:
            j += 1
    return pairs

Coding:make array non-decreasing by segment increments

Sample code

def min_increment_to_nondecreasing(nums):
    cost = 0
    cur = nums[0]
    for x in nums[1:]:
        if x < cur:
            cost += cur - x
        else:
            cur = x
    return cost

OOD:keyboard + mouse input system

classDiagram
    class InputEvent {
      timestamp
      device_id
    }
    class KeyboardEvent {
      key
      action
    }
    class MouseEvent {
      x
      y
      button
      action
    }
    class InputDispatcher {
      dispatch(event)
      register(handler)
    }
    InputEvent <|-- KeyboardEvent
    InputEvent <|-- MouseEvent

System design:LLM quality validation

flowchart LR
    Model["Candidate Model"] --> Eval["Eval Runner"]
    Dataset[("Golden Dataset")] --> Eval
    Eval --> Metrics[("Metrics Store")]
    Eval --> Judge["Human / LLM Judge"]
    Metrics --> Gate["Release Gate"]
    Gate --> Deploy["Deploy"]

API/data model

POST /eval-runs
GET /eval-runs/{id}
POST /eval-datasets
GET /models/{id}/quality-report
eval_datasets(id, name, version, task_type)
eval_examples(id, dataset_id, input, expected_output, metadata_json)
eval_results(run_id, example_id, metric_name, value, judgment)

System design:temperature sensor region system

答案骨架: ingestion gateway -> stream -> time-series store -> alert service。API:POST /sensor-readingsGET /regions/{id}/temperatureGET /alerts。Data model:sensors、readings、region_rollups、alerts。

准备重点

Coding:准备数组、字符串、图、树、heap、sliding window、DP。Amazon coding 常有业务包装和 follow-up,要练清晰解释。

System Design:SDE2+ 准备 scalable service、storage、queue、cache、consistency、failure handling。回答要先讲需求,再讲核心 flow。

Leadership Principles:准备至少 8 个故事,覆盖 ownership、customer obsession、bias for action、dive deep、disagree and commit、deliver results、learn and be curious。

Applied Scientist:准备 ML basics、实验设计、模型评估、项目 deep dive 和业务 impact。

7 天冲刺计划

  • Day 1-2:限时 coding。
  • Day 3:准备 LP 故事。
  • Day 4:练 system design 或 ML project。
  • Day 5:做 behavioral mock。
  • Day 6:模拟 VO mixed round。
  • Day 7:整理 recruiter/HM 问题。

常见失分点

  • LP 故事太泛,没有具体冲突和结果。
  • Technical 做完题但 follow-up 没讲清。
  • System design 没有强调 reliability 和 failure mode。
  • Applied Scientist 只讲模型,不讲实验和业务影响。

CTA

如果你已经拿到 Amazon 面试,建议把 coding 和 LP 一起练。你可以在服务和价格页面查看 SDE/AS mock 选项;也可以通过联系我们页面发送岗位和轮次。

Previous
Previous

Anthropic 面试题型总结整理:Coding、System Design、RL Fundamentals 和 Culture 怎么准备

Next
Next

Airbnb 面试题型总结整理:Coding、Code Review、System Design 和 Past Experience 怎么准备