📜  亚马逊面试经历|第 357 组(2.5 年经验)

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

前段时间我参加了 Amazon.com 的 SDE-1 角色面试,以下是我帮助其他有志者的经验:

书面 – 笔和纸轮
必须用我选择的任何编程语言编写生产级代码,涵盖所有边缘情况,并清楚地提到我的代码的复杂性。

  1. 二叉搜索树中的最低共同祖先
  2. 删除最少数量的字符,使两个字符串成为字谜
  3. 给定一个数组,为每个元素打印 Next Just Greater Element。元素 x 的下一个更大的元素是数组中 x 右侧的更大元素。如果右侧没有更大的元素,或者如果右侧再次出现相同的元素(在重复的情况下),则返回相同的元素
    For e.g. given input array : 3,5,8,4,2,6,3
    output should be : 3,6,8,6,3,6,6
    

    解决方案:GeeksforGeeks 链接
    使用二叉搜索树解决它

面对面回合?
面试官非常乐于助人,而且很专注于方法,他们会先问基本的蛮力解决方案,然后是最佳解决方案,然后他们可能会稍微增加问题的复杂性,如果你能够令人满意地解释你的方法,然后会要求您用您选择的任何编程语言编写生产级代码,使用笔和纸覆盖所有边缘情况:

  1. 在未排序的数组中找到一个元素,使得所有左边的元素都较小,所有右边的元素都较大。
    解决方案:GeeksforGeeks 链接
    需要 O(n) 时间复杂度解决方案。
  2. 在按行按列排序的矩阵中查找第 k 个最小元素。讨论了最小堆和最大堆方法以及两者的复杂性。
    解决方案:GeeksforGeeks 链接
  3. 如果矩阵中有重复元素,我们必须将所有重复元素视为一个位置,即如果矩阵包含像 3,6,4,3,5,4,7 这样的元素,那么
    第一个最小元素是 3
    第二小的元素是 4
    第三个最小的元素是 5
    4th 最小的元素是 6,无论是否出现
    我问我是否可以使用散列,但他正在寻找空间复杂度较低的东西,无法进一步回答这个特定的问题。
  4. 螺旋形式的层序遍历
  5. 找出给定二叉树中子节点和父节点的任意组合之间的最大差异。这里子节点可以在父节点下的任何级别,但应该在从父节点开始的同一子树中。使用递归,自底向上的方法解决,将最大差值和最小节点值返回到当前节点,在每一层上层节点。
    解决方案:GeeksforGeeks 链接
  6. 关于项目的详细讨论,我设计的新东西,为什么这样,为什么不这样等等,我的团队如何工作,完整的过程,我的个人角色,责任和贡献。您是否有代码错误,您如何纠正。您的代码中的任何错误是否已进入生产环境。你在工作之外做什么,你有没有任何开源贡献等等。
  7. 给定二叉树中的任意两个节点,找出从第一个节点到另一个节点的路径,并判断该路径是直线,还是线上有匝,求匝数。
    解决方案:GeeksforGeeks 链接
  8. 关于Java hashmap、hashset、其内部工作及其复杂性的详细讨论。
  9. 很多行为问题,例如最复杂的事情做了,你是怎么做的,你面临什么挑战,你收到的负面反馈,你如何改进,以及更多交叉问题。

给准备像亚马逊这样的会员的建议:

  1. 首先对基本的数据结构概念有一个很好的理解,可以参考geeksforgeeks.org section wise 或任何像Narasimha Karamunchi 这样的书(我参考了这本书),不要只是阅读,而是实施。
  2. 阅读像 Cracking The Coding Interview 这样的书来学习如何回答行为问题。这些问题非常有限,但对于亚马逊来说是必须的。
  3. 练习和解决来自 practice.geeksforgeeks.org 的最后 40 次亚马逊面试经验

希望这些信息对大家有所帮助,祝大家一切顺利。

亚马逊的所有练习题!