📜  亚马逊面试经历| SDE-1(1-1.5 年经验)

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

第一次尝试:

第 1 轮:笔试。

一季度。给定一个字符矩阵。找到从“S”到“D”的最小步数,其中“#”是一个障碍。

解决方案:BFS 从“S”到“D”。

Q2。垂直打印二叉树。关联

第 2 轮: f2f 面试。

一季度。给定一棵二叉树,打印父祖父之和大于 K 的节点。

解决方案:在递归调用中传递 GP 和 parent。

Q2。修改了上面的问题,打印出 N 个父节点和大于 K 的节点。

解决方案:使用和向量递归计算任何节点的 O(1) 中的总和。

第三轮: f2f 面试。

一季度。给定一个数组打印每个大小为 K 的子数组的最小值和最大值。

解决方案:DQ 方法。关联

他修改了问题以找到中位数。

解决方案:2 堆方法链接。他坚持通过在找到最小值和最大值的同时重新使用计算数据来优化更多,但我不能。

Q2。给定一个二叉树和一个指向它的一个节点的指针。在任何时候,这个节点都会开始燃烧,火焰需要 1 秒才能到达相邻节点。打印每秒将被销毁的节点,以换行符分隔。

解决方案:找到k个距离节点。关联

我在每次增加 k 值的同时调用了这样的函数。他要求在 O(N) 中完成,但我不能。

后来我想我应该在一个函数调用中创建一个距离和节点的地图。

下周我又被叫了。

第 4 轮: f2f 面试。 (这一轮被误认为是我的第一轮)

一季度。找到将字符串1 转换为字符串2 所需的最小替换。

解决方案:DP方法.类似链接

Q2。下一个更大的元素。

解决方案:堆栈方法。关联

第 5 轮: f2f 招聘经理。

一季度。设计一个电梯系统。

解决方案:我更专注于编写代码,而不是为电梯的所有组件设计接口。

我会建议学习回答诸如类图之类的问题的方法,然后专注于设计模式。

Q2。数字流的中位数。

解决方案:2堆方法。

结果:拒绝。

第二次尝试:

第 1 轮:笔试(解决 2/3)

一季度。找到要翻转的零,以使连续 1 的数量最大化。关联

Q2。当索引 x 只能与 x+k 交换时对数组进行排序。如果不可能返回-1。

Q3。一起打印具有相同数字的数字。类似链接

第 2 轮: f2f。

一季度。一本书中出现频率最高的 k 个字符串。

解决方案:描述了 Hash-Heap 和 Trie-Heap 方法,并被要求对 Hash 进行编码。

Q2。计算总和等于 K 的子数组的数量。 link

第 3 轮: f2f。

一季度。在按行、按列排序的矩阵中搜索元素。关联

Q2。 BT 中的最大路径和。关联

第 4 轮: f2f 招聘经理。

亚马逊领导原则。

关于我当前项目的详细讨论。

第 5 轮:在线提高门槛。

亚马逊领导原则。

任何我最引以为豪的项目/任务。

问:他分享了一个 30 秒的 YouTube 视频链接。描述亚马逊储物柜系统。送货员将包裹放入储物柜的地方。顾客扫描储物柜并拿到他们的包裹。设计模式并编写一个有效的算法来帮助为送货员找到合适的储物柜。

解决方案:

架构:储物柜 -> 货架 -> 位置。

算法:在每个位置为每个储物柜大小排队。

结果:被选中。