SDE1 FTE/6M实习生的Amazon面试体验(校园内)

第一轮:在线编码+ MCQ
采访日期:2019年7月29日。
平台:mettl
28个MCQ和2个编码
MCQ由数据结构, 算法, C / C ++代码段(指针)的代码输出组成。
编码问题:

  1. 从数组中查找均值, 中位数, 众数。
  2. 重新排列数组, 使连续对之间的差之和最小, 然后返回该和。
第二回合:F2F问题解决
面试官直接转到问题部分。
  • 使得两个元素都不相邻的最大和
我解释了O(n)时间和O(1)空间的DP方法。他对此感到满意, 我把它写在纸上。
  • 数组中的峰值元素
最初, 我告诉线性搜索方法, 但他告诉我做得更好。经过一些笔试工作, 我意识到可以使用分而治之的方法来完成。所以, 我告诉他, 他要我编写相同的代码。
第三回合:F2F数据结构
这位面试官问我自我介绍, 也问我上一轮怎么样。然后他马上就搬到了问题上。
  • 用随机指针克隆一个链表:
最初, 看到这个问题我很困惑, 什么也没想到。但是经过一番思考, 我告诉他基于HashMap的解决方案。由于这是O(n)解决方案, 因此他要求我进一步优化空间复杂度。我花了大约5到10分钟的时间来提出"更改链接"解决方案。他对解决方案似乎很满意。并请我编码。
我真的建议你看一下这个问题, 因为这需要非常独特的创新思维。
  • 原位旋转矩阵:
这是一个基于实现的简单问题, 他想要空间优化的方法, 我也解释过。他没有要求我编码。
第四轮:F2F CS基础知识
这是最长的一轮, 持续了90分钟。我真的很佩服这位面试官的提问方式。
这位面试官是一个非常酷的人。首先我们做了介绍。然后他告诉我要很舒服, 他说这将是一轮讨论, 我们将在其中详细讨论计算机科学的基础知识。
他以完全不同的方式问我所有问题。在下面列出的所有主题中, HE向我解释了这个概念是什么, 并问我为什么, 何时, 何地使用此概念。基本上, 他想知道我对基本原理的理解程度。
  • 他向我解释了什么是界面, 并问我为什么, 何时何地使用它?我们在上面进行了详细讨论, 并提供了一些实例。
  • 你将如何实现printf()函数?
  • 在Java中, 按值传递和按引用传递是什么?
  • 他向我解释了公共的, 私人的, 受保护的。问为什么我们在何时何地使用它?我通过提供一些实际示例并提供了几个类定义对此进行了解释。
  • 我们移到了数据库部分。他向我解释了什么是规范化, 并再次问我为什么, 何时何地使用它。我再次举例说明了这一点, 他对此感到非常满意。
  • 解释ACID属性。我详细解释了。当我说NoSQL数据库没有此属性时。他问我是否了解NoSQL, 我同意。然后我们讨论了SQL vs NoSQL。
  • 你通过非结构化数据了解什么?为什么用NoSQL处理这类数据?
  • 他要求使用实际示例在SQL和NoSQL之间进行权衡。为什么, 何时何地使用SQL而不使用NoSQL, 反之亦然。我给他满意的答复。他对此感到满意。
  • 然后, 他让我对快速排序, 合并排序进行时空复杂度分析。问我何时出现最坏, 最好和平均的情况, 请我举个例子。
  • 你对平衡的BST有什么了解?为什么使用它?
  • 然后, 他问我们在数组中搜索是否比二进制搜索更好?我给了他几种方法:HashMap, 三元搜索, 二进制搜索从左开始
在对各种主题进行长时间讨论之后, 他问我是否有任何问题。我问了他几个关于亚马逊工作文化的问题。
第五回合:酒吧提升
这是一次电话采访, 在现场3.5周后进行, 并且是在AWS Chime上进行的。面试官是非常有经验的人, 有20多年的经验。
【SDE1 FTE/6M实习生的Amazon面试体验(校园内)】他请我自我介绍。当我提到我的实习时, 他问我与我合作过的项目类型, 并询问你必须对你现在实现的功能进行编码。我尝试对其进行编码, 但是由于我面前没有文档, 也没有IDE, 所以我做不到。
之后, 他问了我一个编码问题。在相同级别的二叉树上连接节点。我说过使用队列进行级别顺序遍历。请我递归执行。我给他递归的方法, 然后他让我编码。
最后, 我们讨论了在亚马逊工作和领导原则。
我真的建议电话采访与F2F面试是不同的。在这种采访中, 需要采取不同的技巧才能胜任/做好工作, 我认为这是我拒绝的原因。
总体而言, 这是一次很好的学习经历。
谢谢lsbin。

    推荐阅读