SDE 1-校外的亚马逊面试体验
我通过经常推出的推荐在校外申请,在一次招聘活动中,我收到了一封面试邮件。他们计划了以下事情。
·编码笔试- 45 分钟
· 4轮关于能力的技术:编码、问题解决、算法、数据结构、计算机科学基础
每一轮都是淘汰赛。对于所有回合来说,一件重要的事情是了解亚马逊的原则及其回答问题的 STAR(情况、任务、行动和结果)方法。
笔试:
他们将有 3/4 组两个问题,您将获得其中一组。对我来说,问题是:
第1轮:
这一轮从我的介绍开始。然后他问了两个主要基于数组的中等难度的技术问题。问题之一是:
在已排序和旋转的数组中查找元素。
另一个问题是关于数组和地图的,并且是可行的。然后他问我关于我的一个项目以及我如何在那里展示所有权。这一轮持续了大约一个小时。
第 2 轮:
有人告诉我,因为我的上一轮非常好,所以这一轮会更短。他只问了我一个关于树木的技术问题。问题是找到树的正确视图,但他一开始并没有给出所有细节。有一个条件是节点的垂直深度也必须考虑。必须考虑在树的特定级别上具有最大垂直深度的节点。我使用了一个 hashmap 和一个队列来解决这个问题,他对我的方法很满意。这一轮持续了大约30分钟。这一轮之后,他们筛选了很多候选人。
第三轮:
这个过程持续了大约 2 个小时,他们从每一个可能的主题、编码、理论、行为、项目等方面提出了问题。有两个面试官,其中一个是影子面试官,所以她只是在观察我。问的编码问题是:
- 我们有一家公司,必须为所有员工分配唯一别名,别名是员工姓名的最小唯一前缀。在这里,对于 6 个 Tanyas,不能多次给出相同的别名,别名将分别为 T、Ta、Tan、Tany、Tanya、Tanya_2 和最后一个 Tanya,因为之前已使用完整名称,因此别名将是名称附加别名重复的次数。我建议使用 Tries 来存储分配的每个别名的计数,他要求我为每个来的新员工返回别名。
- 找到子数组的最大长度,其中数组元素的乘积 = 这些元素的 LCM。我建议他在这里使用 GCD,因为满足此条件的元素的 GCD 将为 1。他给了我一个范围,所以我提出的最终解决方案是存储之前所有数字的唯一素因子,然后在一次遍历中找到范围,跟踪开始和结束。
然后他问我有关网络的问题。服务器如何响应客户端的请求以及如何建立连接。然后我被问到有关密码学和数字签名算法的问题。然后他问我为什么选择亚马逊,为什么不是你提供的其他公司。
第四轮:
这一轮安排在4天之后,是VC轮。这一轮是提高标准的一轮,所以他们提出了简单的技术问题,并且也专注于基于原则的技能。他首先询问一棵平衡树的条件,然后询问它的代码。然后他问我要代码来检查一个数组是否是其他数组的子数组。他不想使用额外的空间。他向我询问了我所知道的排序算法以及关于每种算法的指示。然后他问我关于死锁以及如何使用代码解决它。然后另一位面试官加入,他们询问了我面临僵局的情况以及我是如何克服的。我被问及我获得所有权的情况和类似的东西。记住他们的原则并围绕他们建立你的答案。这一轮持续了大约40分钟。
判决:选定