📜  亚马逊面试经历|软件开发工程师二

📅  最后修改于: 2021-09-23 05:30:39             🧑  作者: Mango

参加 Amazon SDE – II 的面试,总经验为 1.5 年。

第 1 轮(电话筛选):

一季度。给定一个数字 ‘n’ 找出长度为 ‘n’ 的二进制字符串的总数,这样一个字符串中至少应该有一对连续的 1。例如:对于n = 5,10011,11101,11111有效的和10101,10001是无效的。

Q2。为问题设计类,可以有“m”个州,每个州可以有“n”个政党。目前正在进行计票,定义以下操作的函数(预期复杂度 O(1)):

  1. 更新一个州内一个政党的总票数
  2. 在当前时间获得一个国家的领导党

现场巡查:经过 3 周的电话筛选后。

第 2 轮(算法和 DS):

一季度。二叉树中与给定节点距离为 K 的所有节点。 https://www.geeksforgeeks.org/print-nodes-distance-k-given-node-binary-tree。

Q2。给定 k 个已排序数组,您需要从每个数组中选择一个元素,使得所选元素的最大元素和最小元素之差最小。 k = 3 的示例
1 13 27 30

16 20 29

2 3 14 18 19 22 25 28

ans: 2 个选定的元素 (27, 29, 28)

最优化的解决方案加上整洁的纸上代码对于这两个问题都是预期的。我花了半个小时来解决这两个问题。面试很顺利。

第 3 轮(LLD):

设计国际象棋,为每个实体制作整洁的类图,解释实体之间的关系,解释完整的跟随将如何发生,即哪个类/函数将接受输入,如何处理该输入以及将返回哪些值。

面试官深入挖掘了一些类,要求为一些函数写出完整的函数定义。

面试官很有互动性,他想深入挖掘的地方都给出了提示。最后,我创造了相当不错的设计。这一轮也很顺利。

第 4 轮(HM):

有两个面试官,他们都是经理级别的,一个问我问题,另一个面试。

他从很多行为问题开始:

  1. 有一次我在我的团队中采取了主动。
  2. 我有一个改善客户体验的想法
  3. 团队不赞成的想法
  4. 代码审查是如何完成的,还有更多……

通过亚马逊领导原则,他们对他们非常着迷,并试图只向他们提出问题,并为一些关键问题做好准备,例如客户痴迷,深入研究,赢得信任,有骨气;不同意并提交您以前的项目。

然后他问设计图书馆系统的HLD,DB结构应该是什么,应该使用哪种类型的DB(NoSQL或SQL),为什么?

我非常自信地回答了所有问题(记得要自信地回答行为问题,你的肢体语言在 HM 回合中最重要)。这一轮也进行得很顺利。

第 5 轮(HLD 和 LLD):

本轮预计设计铁路订票系统,包括HLD和LLD。系统中的不同组件应该是什么,我们是否需要微服务,它们将如何交互?系统中的数据库结构和类应该是什么。我在这一轮中真的很困惑,走上了路。经过一番努力,我管理了几个类和一个数据库结构,但这并不是端到端的。这一轮很糟糕。

第 6 轮(提高门槛):

他再次从很多行为问题开始,其中大部分是关于客户的痴迷。

Instagram的HLD,应该是什么数据库结构,应该使用什么样的数据库,分片策略和其他一些与设计相关的问题。

他还问了一个 Algo 问题:

给定一个已知比率列表,找到查询列表的比率。

输入:

给定比率:

AB 0.3(意味着 A/B = 0.3)

公元前 0.2

DA 2

查询列表:

空调(查找空调)

BD

输出:

0.6

1.67

提高标准后,HR 告诉我面试官的反应很好,今天就到此为止。 4 天后,我接到了她的电话,当我成功时,她向我表示祝贺,并将报价延长给了我。整体体验非常好。 HR 非常支持并时不时地指导我,告诉我要准备什么,如何回答,每一轮要关注哪个领导原则。

提示:

  • 对于 SDE 2,亚马逊不太关注算法和 DS,只需通过 G4G 上的标准问题就足够了。
  • 做好设计准备,LLD 和 HLD 都是你的期望。 Educative.io 是它的一个很好的来源,它不是免费的,但值得。
  • 对于 LLD,为标准问题准备列表,您可以在亚马逊体验中轻松找到这些问题,并尝试先自己创建解决方案,然后在线搜索它们。
  • 对HM回合非常有信心,如果HM发现您适合该角色,即使其他所有人都反对您,他也会为您而战。
  • 最重要的是,准备好领导原则,至少为少数人准备好故事。
  • 最后但并非最不重要的一点是,相信自己一切皆有可能,几乎每个人都告诉我他们不会为 SDE II 雇佣一个 1.5 年经验的人,但他们做到了,所以相信自己,去抓住它。