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

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

电话

任何语言的生产级代码都需要单元测试。面试前分享了Collabedit链接

  1. 项目讨论。
  2. 给定一个整数数组。找出任何一对整数之间的最小差异。
  3. 各种排序技术的时间复杂度。
  4. 给定一个二叉树。用每个节点的总和替换每个节点的值。

面对面
第1轮

  1. 简单的介绍
  2. 当前项目详细讨论(25-30 分钟)。跟进有关项目的问题。
  3. 许多行为问题,例如
    1. 为什么是亚马逊?
    2. 你为什么想离开你现在的公司?
    3. 当您提出一些想法而您的整个(大多数)团队反对时,有什么情况吗?你是如何处理这种情况的?
    4. 当前公司的代码审查和部署流程?
    5. 有没有让你觉得有成就感的特定任务/项目?
    6. 当你被一些只能由他解决的事情阻止时,你将如何说服一个不情愿的队友来帮助你?
    7. 您自学过的任何技术/语言?

他解释了亚马逊遵循的代码审查、部署、测试等实践。他简要介绍了我申请的团队的背景/目标。

第二轮

  1. 介绍
  2. 详细的项目讨论。跟进有关所用技术和系统设计的问题。
  3. 行为问题,比如为什么选择亚马逊?,你为什么想离开你现在的公司?等等。
  4. 在传入的 +ve 整数流中,如果到目前为止出现了总和等于 10 的 2 个数字,则返回 true。
  5. 给定一个数 n,返回矩形的维数 (l, b)
    1. 最大程度地接近正方形。例如-如果有 2 个解决方案 – 4X3 和 6X2,则返回 4X3。
    2. 本身可以容纳 n 或 n+1 或 n+2 个元素,即 n <= 矩形面积 <= n+2
      例如:i) n = 16,返回 (4, 4)
      ii) n = 13, 返回 (5, 3)
      iii) n = 12,返回 (4, 3)

第三轮

  1. 给定一个整数数组。为每个索引在其右侧查找最近的更大元素。预期时间复杂度:O(n)
    例如:
    在 = [5, 3, 6, 12, 10, 6, 11]
    出= [6, 6, 12, -1, 11, 11, -1]
  2. 给定一个链表,编写一个函数来反转每个 k 节点窗口(其中 k 是函数的输入)。
    例如:
    输入:1->2->3->4->5->6->7->8->NULL 和 k = 3
    输出:3->2->1->6->5->4->8->7->NULL。
  3. 关于我的一个项目的详细讨论。

第 4 轮

  1. 设计一个系统来维护在线订单的状态(已下单、已交付、已发货等),并支持获取当前状态、获取历史记录、允许状态更新等查询。需求没有很好地定义,我们必须深入挖掘并获取需求通过向他们提问。
  2. 讨论我目前的项目。
  3. 检查给定的二叉树是否是 BST。
  4. 使用什么数据结构来表示笛卡尔(x,y)2D 平面中的坐标。
  5. 我要求在这个 DS 上完成所有必需的查询,如搜索、插入等。我告诉他为此使用四叉树,他让我编写四叉树的代码。编码后,跟进诸如时间复杂度、当数据点分布不均时如何进一步改善四叉树中最坏情况的问题等问题。
    1. 然后他问我不使用四叉树怎么做?
      可以使用 xy 链接的 BST 来完成,其中 x 坐标存储在第一个 BST 中,第一个 BST 中的每个节点(x 值)指向另一个 BST,其中包含该 x 处所有点的 y 轴值。
    2. 跟进诸如比较上述两种技术的时间和空间复杂度、两种技术的优缺点等问题。

如果你喜欢 GeeksforGeeks 并愿意做出贡献,你也可以写一篇文章并将你的文章邮寄到 review-team@geeksforgeeks.org。在 GeeksforGeeks 主页上查看您的文章并帮助其他 Geeks。