Amazon SDE NG 最近的 VO 面试中,Coding 和 Behavioral 的占比都比较高。本文整理了一份四轮 Amazon SDE VO 面经,前三轮均包含 Coding 和 BQ,第四轮为 Bar Raiser,主要围绕 Behavioral 展开。
这次面试的 Coding 题型比较丰富,从 Group Anagrams、Top K Frequent Elements、Number of Islands 等经典算法题,到 Streaming Matrix 和 In-Memory Cache 等 Engineering 场景,面试官还针对基础题继续增加 Follow-up。
BQ 部分则主要围绕 Ownership、Operational Excellence、Cost、Taking a Calculated Risk 和 Influencing Without Authority 展开。尤其是 Bar Raiser,会针对候选人的具体经历不断追问个人贡献、决策原因和 measurable outcome。
下面按照四轮面试顺序,整理本次 Amazon SDE NG VO 中出现的 Coding Questions、Behavioral Questions 以及后续 Follow-up,方便了解实际面试中的题目和追问方式。

Amazon SDE Interview Process 完整流程
Amazon SDE 的完整招聘流程会根据岗位、Candidate Level 和招聘团队有所不同。对于需要参加 VO 的候选人,可以简单理解为:Application / Recruiter → OA(部分岗位)→ VO → Bar Raiser → Hiring Decision
其中:
- OA(Online Assessment):在线完成的技术或综合测评
- VO(Virtual Onsite):与面试官进行实时视频面试
- Coding Interview:考察算法、数据结构和 Problem Solving
- Behavioral Interview:考察过去的工作经历、决策和行为
- Bar Raiser:由独立于招聘团队的面试官进行的一轮面试
具体 Amazon SDE Interview Process 可能根据岗位和招聘批次变化,因此不要把某一份面经中的流程理解成所有候选人完全相同。
Amazon SDE NG VO 面试有几轮?
这次 Amazon SDE NG 面试一共四轮:
| Round | 面试内容 |
|---|---|
| Round 1 | BQ + Coding |
| Round 2 | Coding + BQ |
| Round 3 | Coding + Engineering / BQ |
| Round 4 | Bar Raiser + Behavioral |
前三轮的 Coding 题型不同,第四轮几乎全部围绕 Behavioral 展开。
Round 1:BQ + Group Anagrams Coding
Behavioral Questions
这一轮出现的 BQ 包括:
- A time you made a decision with incomplete information
- A time you disagreed with a teammate or your manager and how you handled it
这两道题分别涉及 Decision Making 和 Conflict Resolution。准备 Amazon SDE Behavioral Questions 时,不建议只准备一个非常简短的故事。面试官通常会继续追问:
- 当时发生了什么?
- 你为什么做这个决定?
- 还有没有其他方案?
- 你具体做了什么?
- 其他人做了什么?
- 最终结果是什么?
- 如果重新来一次,你会怎么处理?
建议用 Situation → Task → Action → Result 完整回答,并明确区分“团队做了什么”和“你个人做了什么”。
Coding Question:Group Anagrams
给定一个字符串数组,将所有互为 Anagram 的单词放到同一个 Group 中。
示例:
Input: ["eat", "tea", "tan", "ate", "nat", "bat"]
Output:
[
["eat", "tea", "ate"],
["tan", "nat"],
["bat"]
]常见方法是将每个字符串排序,然后使用排序后的字符串作为 HashMap Key。但面试官进一步要求:不要使用 Sorting Signature。因为对于长度为 k 的字符串,排序需要 O(k log k),整体复杂度约为 O(n × k log k)。
更好的解法:Character Count Signature
如果字符串只包含 26 个英文字母,可以统计每个字符的出现次数,把 26 个字符的 Count 作为 HashMap Key。
整体复杂度可达到 Time Complexity:O(n × k)。
为什么不用质数乘积作为 Anagram Key?
虽然理论上可行,但实际实现时容易出现 Integer Overflow 和 Hash Collision,因此 Character Count Signature 通常是更直接、更安全的方案。
Round 2:Top K Frequent Elements + Number of Islands
Behavioral Questions
- A time you took ownership of something clearly outside your scope
- A time something you owned went wrong in production
第一道明显涉及 Ownership,第二道和 Production Incident、Operational Excellence 有关。
回答 Production 问题时,重点准备:
- Issue 是如何发现的?
- Impact 有多大?
- 你第一反应是什么?
- 如何定位 Root Cause?
- 有没有 Rollback?
- 如何恢复服务?
- 后续采取了什么措施避免再次发生?
Coding Question 1:Top K Frequent Elements
给定一个非空整数数组,返回其中出现频率最高的前 k 个元素。
示例:
Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]先用 HashMap 统计频率,再使用 Min Heap、Max Heap 或 Bucket Sort 找出 Top K。面试中需要解释选择该方案的原因,以及 Time Complexity 和 Space Complexity。
Coding Question 2:Number of Islands
给定一个只包含 0 和 1 的二维 Matrix(1 表示 Land,0 表示 Water),返回 Island 的数量。上下左右相邻的 1 属于同一个 Island。
最常见方法是 DFS 或 BFS。当遍历到一个尚未访问过的 1 时:
- Island Count 加一
- 启动 DFS / BFS
- 将与当前 Land 相连的所有 1 标记为 visited
Follow-up 1:如何计算 Maximum Island Area?
在 DFS / BFS 过程中统计当前 Island 的面积,每遍历完一个 Island 就更新 maxArea。
Follow-up 2:如果 Matrix 是 Streaming Input 怎么办?
如果 Matrix 是一行一行 Streaming 进来,就不能把完整 Matrix 保存下来再做 DFS。需要重新设计:
- 当前 Row 和上一 Row 如何连接?
- 如何判断两个区域属于同一个 Island?
- 如何降低 Memory Usage?
可考虑只维护当前 Row 和上一 Row 的状态,或使用 Union-Find 维护不同区域之间的连接关系。这类 Follow-up 把考察重点从“会不会写 DFS”提升到“当 Input Constraint 变化时,能否重新设计算法”。
Round 3:In-Memory Cache 设计与 Engineering Follow-up
这一轮 BQ 主要围绕 Operational Excellence、Cost、On-call、Production Alert、Performance Optimization 和 Cost Reduction。
常见问题包括:
- 有没有真正参加过 On-call?
- 线上出现 Alert 时第一反应是什么?
- 有没有主动做过 Cost Reduction?
- 有没有做过 Performance Optimization?
- 有没有因为自己引入的 Complexity 而导致后续问题?
Coding Question:In-Memory Cache
这是一道开放式 Engineering 问题。面试官更关注你如何 Clarify Requirements,以及如何根据 Requirement 进行 Design。
第一步:Clarify Requirements
- Cache Capacity:有没有容量限制?满了怎么办?
- TTL:是否需要 TTL?过期时如何删除?
- Eviction Policy:达到 Capacity 时删除哪个 Entry?(本次讨论到了 LRU + TTL)
- Concurrency:多线程同时 get / put / delete 时如何保证 Thread Safety?
TTL + LRU Cache 典型设计
使用 HashMap + Doubly Linked List:
- HashMap 负责快速定位 Key → Node
- Node 保存 key、value、expireTime、prev、next
- Doubly Linked List 维护 LRU 顺序
这样可以实现:
- 查找:平均 O(1)
- 删除 Node:O(1)
- 移动到 MRU:O(1)
- 删除 LRU:O(1)
Follow-up:如何优化 Expired Key Cleanup?
如果用定时任务扫描整个 Cache,成本较高。可以额外维护一个按 expireTime 排序的 Min Heap / Priority Queue,后台 Cleanup Task 只需要检查 Heap Top。更大规模系统还可讨论 Timing Wheel 等方案。
Round 4:Bar Raiser Behavioral Questions
第四轮是 Bar Raiser,几乎全部是 Behavioral。面试官会从两到三段经历出发,不断向下追问:
- What happened?
- What did you personally do?
- Why did you make that decision?
- What was the measurable outcome?
- What would you do differently?
Bar Raiser Question 1:Taking a Calculated Risk
讲一个你明知道存在风险,但仍然决定推进的事情。可按 Risk → Assessment → Decision → Mitigation → Result 组织回答。重点不是证明自己“敢冒险”,而是解释为什么这个 Risk 在当时是可以被接受的。
Bar Raiser Question 2:Influencing Without Authority
在没有汇报关系的情况下,你如何推动其他人配合?回答时尤其要强调 Your Personal Contribution,明确“我具体做了什么”,而不是只说“我们团队说服了对方”。
Amazon SDE Behavioral Questions 怎么准备?
建议提前准备 8–10 个真实经历,覆盖不同场景:
| 方向 | 可准备的经历 |
|---|---|
| Ownership | 接手职责范围之外的问题 |
| Conflict | 与 teammate / manager 意见不一致 |
| Failure | 项目失败或出现问题 |
| Production | Production Incident |
| Risk | Taking a Calculated Risk |
| Leadership | 主动推动项目 |
| Cost | Cost Reduction |
| Performance | Performance Optimization |
| Influence | Influencing Without Authority |
| Decision Making | 信息不完整时做决定 |
每个故事都用 Situation → Task → Action → Result 回答,并准备好 Follow-up。
Amazon SDE Coding Interview 怎么准备?
从这份面经可以看出,Coding 并不只是考一道标准 LeetCode 题。面试官可能会不断增加 Constraint:
- Group Anagrams → No Sorting Signature → Character Count Signature
- Number of Islands → Maximum Island Area → Streaming Input
- Basic Cache → Capacity → TTL → LRU → Concurrency → Expired Key Cleanup
建议用「题目 → 基础解法 → Complexity → Follow-up → 新 Constraint → 新方案」的方式训练。
Amazon SDE Interview Questions 高频方向
Coding
Array、String、HashMap、DFS、BFS、Graph、Heap、Top K、Sorting、Binary Search、Dynamic Programming
Engineering
Cache、TTL、LRU、Concurrency、API、Database、Scalability、Monitoring、Logging、Performance、Cost Optimization
Behavioral
Ownership、Leadership、Conflict、Failure、Risk Taking、Decision Making、Operational Excellence、Cost、Influencing Without Authority
常见问题
1.Amazon SDE interview 难不难?
难度取决于岗位、Level、面试轮次以及候选人的技术和工作经验。VO 除了 Coding,还需要准备 Behavioral Questions 和 Follow-up,只刷算法题无法覆盖全部内容。
2.Amazon SDE Interview 通常会问什么问题?
通常包括 Coding Questions 和 Behavioral Questions。Coding 涉及 Array、String、HashMap、DFS、BFS、Heap 等;Behavioral 涉及 Ownership、Leadership、Conflict、Production Incident、Decision Making、Risk Taking 和 Operational Excellence。
3.什么是 Amazon SDE VO?
VO 是 Virtual Onsite,即通过视频进行的正式技术面试,可能包含 Coding、Behavioral、Leadership Principles、Engineering 和 System Design。
4.Amazon SDE OA 和 VO 有什么区别?
OA 是在线完成的测评,VO 是与 Amazon 面试官进行实时视频面试。本文整理的是 VO 面经。
5.什么是 Amazon Bar Raiser Interview?
Bar Raiser 是独立于招聘团队的面试轮次,通常重点考察 Behavioral,以及候选人在具体经历中的决策、行动和结果。
6.怎么准备 Amazon SDE VO?
同时准备 Coding + Behavioral + Follow-up + Engineering。Coding 需要练习在新 Constraint 下调整方案;Behavioral 需要准备真实经历,并能清晰解释个人贡献、决策原因和 measurable outcome。
Final Takeaways
这份 Amazon SDE NG 四轮 VO 面经显示,Amazon SDE Interview 并不是单纯的 LeetCode Coding Interview。四轮面试覆盖了 Coding、Behavioral Questions、Leadership Principles、Operational Excellence、Cost、Engineering 和 Bar Raiser。
Coding 从 Group Anagrams、Top K Frequent Elements、Number of Islands 等算法题,延伸到 Streaming Input、In-Memory Cache、TTL、LRU 和 Expiration 等 Engineering Follow-up,考察的不只是代码实现能力,也包括面对新 Constraint 时的 Problem-Solving 能力。
准备重点建议放在:Coding → Follow-up → Behavioral → Engineering Thinking。对于 Behavioral 和 Bar Raiser,则特别注意个人贡献、决策过程、具体数字和最终结果。
准备 Amazon SDE 面试时,除了刷 Coding,也可以重点练习 Follow-up、Behavioral Questions 和 Bar Raiser 追问。InterviewShow 提供 Amazon、Google、Meta 等岗位的一对一面试辅导,可以针对具体面试环节进行准备。
希望这份面经能帮你更好地了解 Amazon SDE VO 的实际考察方式,祝面试顺利。