亚马逊 New Grad(NG)面试经验分享
面试流程概览
Amazon NG 面试包含 Coding(算法题)、System Design、Behavioral Questions(BQ),重点考察 数据结构、算法优化、系统设计思维及领导力准则(Leadership Principles)。
Coding 轮
1. 计算访问次数最多的 Top K Domains(使用 Prefix Tree)
- 输入:
- 一个 sub_domain 列表,包含多个子域名(subdomains)。
- 一个 domain 列表,包含主域名(domains)。
- 任务:
- 统计每个主域名下访问次数最多的 Top K 子域名。
- 使用前缀树(Prefix Tree / Trie) 进行高效查询和统计。
- 示例数据:
sub_domains = [ "news.apple.cn", "news.apple.com", "ipod.apple.com", "hello.hi.apple.com", "finance.yahoo.com", "tea.yahoo.com", "finance.yahooooo.com", "hello.google.com", "news.google.com", "ai.google.com" ] domains = ["apple.com", "yahoo.com", "google.com"]
- 考察点:
- Trie 树构建与查询优化。
- 哈希表结合堆(Heap)获取 Top K 结果。
- 时间复杂度分析与优化方案。
2. Onsite - 查找最长重复前缀(Longest Repeated Prefix)
- 输入: 一组字符串列表。
- 任务: 找到 出现至少两次的最长前缀。
- 考察点:
- Trie(前缀树)构建 & 查询。
- 动态规划(DP)+ 哈希优化。
- Rolling Hash + Suffix Array 解决方案。
- 时间复杂度 & 空间复杂度优化。
Behavioral Questions(BQ)
Amazon 面试非常重视 Leadership Principles(领导力准则),BQ 轮重点围绕 解决问题的能力、团队合作及抗压能力。
常见问题
- Mistake and lessons learned(犯错 & 学到的经验)
- Impossible task at first glance(看似不可能的任务)
- Criticism(如何接受批评)
- Deep into details(深入细节的经历)
- Dispute(如何处理团队分歧)
- Simple solution to a complex problem(如何用简单的方法解决复杂问题)
- Move fast(如何在快节奏环境中高效执行)
建议: 使用 STAR 方法(Situation, Task, Action, Result)回答,清晰描述情境、任务、执行方案和结果。
面试总结与建议
- Coding 需掌握 Trie 及前缀优化技巧,并熟练应用 哈希表 + 堆 进行高效查询。
- Onsite 题目涉及字符串优化,建议复习 Trie、Suffix Array、Rolling Hash 等技术。
- BQ 结合 Amazon Leadership Principles 准备,确保每个问题有清晰的 STAR 框架答案。
- 面试官关注代码质量,代码风格、可读性、测试覆盖率均需达标。
- 系统设计可能会在高级别面试中出现,建议掌握 分布式系统架构基础。