亚马逊面试经历 |第 351 组(校外 - 适用于 SDE I)
我参加了德里的推荐活动,所以我们必须在上午 10:00 到亚马逊办公室报到。
第 1 轮:书面 - 笔和纸(11:00 – 12:00 PM)
你必须先写一个简短的描述你的方法,如有必要,请发表评论以解释该行的逻辑。应编写涵盖所有边缘情况的完整优化代码。还要提到复杂性。
- 排序数组到平衡 BST。
- 检测并删除链表中的循环。
第 2 轮:面对面(02:00 – 03:30 PM)
这是技术回合,从您的基本方法开始,然后进一步转向优化方法。面试官会期望你编写完全成熟的代码(优化方法之一),涵盖所有边缘情况,并推导出它的复杂性。如果他对任何空间和时间复杂性不满意,他会敦促你为他提供解决方案,这在亚马逊的采访中经常发生。
- 给定一个数字 N,您可以执行三个操作,例如 (N-1, N/2, N/3) 找到使用这三个操作可以将 N 减少到 1 的最小步数。
达到 1 的最小步骤。
首先给了他递归的方法,给了他时空复杂性。然后告诉他dp one,现在是时空。然后他告诉我编写 dp 方法的代码。 - 跨两个排序数组的最大总和路径。
给他使用空间 O(m+n) 和时间 O(m+n) 的解决方案,并为其编写代码。然后他要求在 O(1) 空间和 O(m+n) 时间内解决它,花费一些时间并对其进行编码。
第三轮:面对面(05:00 – 06:30 PM)
再次是技术轮,这一轮更具体的是 DS,我们必须编写完全优化的代码,涵盖所有测试用例。
- 二叉树的宽度
给了他很多方法,也讨论了Level Order遍历。最后为它写了代码。 - 打印垂直顺序遍历
告诉他使用 Maps of STL 的方法,但为此我必须对其进行排序以便以正确的顺序显示,这将花费额外的时间复杂度,因此想出了在不使用 Hashmaps 的情况下将结果直接添加到数组的解决方案。 (因为 HD 是连续的 -2, -1, 0, 1, 2,所以您也可以采用数组并在那里操作一些插入)。
第 4 轮:招聘经理轮(07:30 – 09:00 PM)
- 从一个技术问题开始:整数流中的第 K 个最大元素。
必须使用 Heap 以及 Heaps 的所有 util 函数编写代码。 - 告诉我一些关于你自己,关于你的公司的事情,你做了什么样的项目,你做了什么非凡的事情,你现在的公司有没有得到任何赞赏。
- 告诉我他的团队正在做的工作,问我一些行为问题,比如,你和你的经理之间在某个时间点是否有任何冲突,你是如何解决的?如果您标记的完成任务的截止日期已过,您会怎么做?
1周后……
第 5 轮:招聘经理轮(电话:1 小时)
开始问自己,并通过更深入地了解我的背景来了解我。这一轮“深入”了你从嘴里说出的任何话,他会钻进去。
- 技术问题:您研究过数据压缩吗?它是什么各种技术。我列出了霍夫曼和运行长度。
- 运行长度编码
- 霍夫曼编码
- 他告诉我编码运行长度。
- 然后告诉我在给定字符串字符的情况下进行就地运行长度编码。
在某些情况下,它会失败,其中原始字符串的唯一字符数会增加,因此字符串长度会增加,因此无法就地转换。我告诉了他,并建议我会带一个向量,以防要添加任何内容。然后他询问这些压缩长度增加的字符串,我们如何识别它。 - 识别不能使用此方法压缩的字符串,然后压缩可以压缩的字符串。编写代码并向他解释。
- 这个算法的实际应用是什么,我告诉他像 AWS Redshift 这样的仓库已经做了数据压缩,给他列出了一些其他有用的,就像他们已经用于 Dates Column 一样。
- 项目讨论,还得跟他详细解释一个项目。他在我的项目中提出了几个设计缺陷,并要求我提供他们的解决方案。这部分非常关键,因为他让我了解了一些案例,如果这是一个无效的业务用例,我必须提出一些技术解决方案或纠正他。
通过这种方式,他还检查了我除了技术之外还有多少业务知识。
5 天后:来自 Amazon.com 的祝贺,我们将为您提供工作机会🙂
状态:已选中
亚马逊的所有练习题!