📜  亚马逊面试经历 | SDE-1 校外(1)

📅  最后修改于: 2023-12-03 15:06:22.504000             🧑  作者: Mango

亚马逊面试经历 | SDE-1 校外

面试流程

我参加了亚马逊的SDE-1校外面试,总共进行了4轮面试,每轮面试约45分钟。整个面试过程分为以下几个部分:

第一轮
  • 算法题
  • 程序设计
  • 技术问题
第二轮
  • 算法题
  • 程序设计
  • 技术问题
第三轮
  • 算法题
  • 程序设计
  • 技术问题
第四轮
  • 算法题
  • 程序设计
  • 技术问题
面试准备

亚马逊的面试准备主要包括以下三个方面:

算法和数据结构

亚马逊的面试,首先重视的是算法和数据结构的基础知识。所以,对于这方面的准备,可以参考以下几个资源:

  • LeetCode
  • HackerRank
  • Cracking The Coding Interview
系统设计

再者,对于系统设计的准备,可以参考一些书籍和 Mooc 课程,例如:

  • Grokking The System Design Interview
  • System Design Primer
  • Designing Data-Intensive Applications
技术面试

最后,对于技术面试而言,可以参考官方文档和相关讨论社区,例如:

  • Amazon官方文档
  • Stack Overflow
  • Quora
面试问题

在面试中,我遇到了一些问题,以下是我整理出来的问题汇总:

算法题
  1. 给定一个字符串,找到其中的一个子串,它是字符串中出现的所有字符的排列。例如,给定 "abbcabc" 和 "abc",返回 true,因为该字符串完全包含 "abc" 的一个重新排列。
  2. 给定一个整数数组,找到一个包含至少一个数的子数组,其乘积最大。例如,给定数组 [2,3,-2,4],返回 6,因为子数组 [2,3] 有最大的乘积 6。
  3. 给定两个字符串 A 和 B,返回它们中的最长公共子序列的长度。例如,A 为 "abcde",B 为 "ace",则最长公共子序列为 "ace",长度为 3。
  4. 给定一个二维矩阵,其中每个元素都是正整数,找到从左上角到右下角的一条路径,使其路径上所有元素的和最小。
程序设计
  1. 设计一个电影推荐系统,用户可以在系统中搜索电影,并根据他们的评分来排序,系统还可以推荐电影给用户。
  2. 设计一个键值存储系统,支持插入数据,查询数据,删除数据等。
  3. 设计一个数据结构,支持插入一个数,删除一个数,找到中位数。
技术问题
  1. 谈一谈你使用过哪些AWS服务以及它们的优缺点。
  2. 什么是分布式系统?如何使用分布式系统来处理大量数据?
  3. 如何保证分布式系统的一致性?
  4. 什么是负载均衡?
总结

通过参加亚马逊的面试,我收获了很多。促使我认识到算法和数据结构的重要性,学到了更多的系统设计经验,更加清楚地认识到不同 AWS 服务的优劣等。总的来说,亚马逊的面试难度很大,但也是一个很好的学习机会。