📜  亚马逊面试经历|设置 317(SDE-1 关闭 – 校园)

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

第1轮:

  1. 说说你自己。
  2. 截留雨水:给定 n 个非负整数表示高程图,其中每个条的宽度为 1,计算下雨后能够截留多少水。
  3. 打印二叉树的左视图。

    讨论:我给出了两种方法,一种使用 DFS,另一种使用级别顺序遍历。
    他要求比较两种方法并实施有效的方法。 DFS 是高效的,因为按照层级顺序,您需要存储每一层的所有节点,其中一些可能不是 BT 左视图的一部分。

第二轮:

  1. 说说你自己。
  2. 查找 BST 中第 k 个最小元素之后的 n 个元素的总和。树很大,你是
    不允许遍历树。
    讨论:由于不允许数组遍历,所以我们需要对树做一些预处理,比如存储其所有前驱节点的总和。为了找到第k个最小元素,使用顺序统计方法:
  3. 给定一个已旋转 n 次的排序数组。找出 n 的值。它类似于下面的帖子,您只需要找到枢轴元素。如果您有枢轴元素的索引,则可以获得数组旋转的次数。

第 3 轮:

  1. 数数到达第 n 级楼梯的方法。

    它类似于斐波那契数列。面试官问了实现同一个-Recursion,一维数组的各种方法,每个有3个变量和复杂度。

  2. 设计推荐引擎。
    这就像自动建议。我给出了尝试的方法。面试官似乎对这种方法很好,并要求我编写具有时间和空间复杂性的完整代码。尝试的实现:
    尝试 | (插入和搜索)

第 4 轮(管理轮 – 通过视频通话)

  1. 说说你自己。
  2. 当前工作
  3. 你最喜欢哪个项目。
  4. 任何与您的经理发生冲突的情况。
  5. 您向您的团队提出的任何想法/技术都得到了实施和解决。
  6. 任何情况下,当您不得不走出舒适区时。
  7. 从您的经理/团队成员那里收到的最重要的反馈。
  8. 除了您的项目工作之外,您还做什么来增强您的技术知识。
    还有很多。

第 5 轮(最后一轮 – 电话)

  1. 最初,我被问到关于我所做的工作、我所做的项目和一些管理问题的问题。
  2. 然后我得到了一个编码问题来解决。他们在电话屏幕面试中使用 Collabedit 工具,其中面试官和受访者共享同一个屏幕。
    问题:打印两个给定句子中的所有非重复单词。
    例如。陈述 1:我有一支蓝色钢笔。
    陈述2:我有一支红笔。
    输出:蓝色变成红色
    讨论:我建议使用散列方法。面试官要求实施相同的。

注意事项:

  • 你必须知道如何计算时间和空间复杂度
  • 在每一轮中,他们都会问你最近做过的项目/你最喜欢工作的项目/最具挑战性的工作等——所以你应该为至少一个具有深入细节的项目做好准备。
  • 对所问的每个问题从朴素的方法开始,然后继续进行具有更好空间和时间复杂性的解决方案。
  • 无需浪费时间阅读操作系统、网络、DBMS 等。他们只关心您所做的项目和您的编码技能,无论您在编写代码时是否涵盖所有边缘情况,了解时间和空间复杂度,是否有更好的方法来解决相同的问题问题等等。
亚马逊的所有练习题!