亚马逊专访 |设置 28
嗨,我最近接受了海得拉巴亚马逊 SDE1 职位的面试,但未能通过。虽然我没有被选中,但这是一次很好的体验,GeeksforGeeks 非常有帮助。
以下是面试题——
在海得拉巴进行 4 次面对面面试之前,我进行了一轮书面面试和一轮电话面试。
第一轮(书面):
有四个问题必须在两个小时的时间内提交。问题是:
1. 给定一个字符,显示在该字符串中出现字符串的字符。
2. 将矩阵向右旋转 90 度
3. 将 BST 转换为 DLL。
4. 在给定的 BST 中找到第 k 个最大的元素。
第 2 轮(电话):
1. 第一个问题是从 BST 中得到两个数,其和等于 k。我使用前序遍历来回答它以获取排序数组,然后从两端开始两个索引以查找总和为 k 的两个元素是否存在。然后他问是否可以在不使用数组或额外空间的情况下解决它。我尝试通过以 eoder 和反向预排序方式从树的两端遍历来解决它,并且需要一些时间来编码。代码的空运行似乎是正确的,但我不确定。无论如何,不使用额外空间的最佳方法是将树转换为 DLL(在空间中)并使用与数组相同的技术。
2. 对于第二个问题,有人问我之前是否听过这个问题。问题是给出了一个矩阵,其行和列已排序,并且要在该矩阵中搜索一个元素。我以前听过这个问题,但没有解决它,并把同样的问题告诉了面试官。经过一段时间的思考,我可以从第一行最右边的元素开始得到一个算法。如果元素更大,我们向下移动,否则我们向右移动。解决方案很好,但他怀疑我早先解决了它。
3. 他要求编写一个不使用库函数求数的平方根的程序。我以前做过,也告诉过他。我使用 Newton-rapson 方法来获得解决方案,但他希望通过二进制搜索来获得解决方案。我几乎得到了解决方案,但可能是我没时间了,所以他只把问题放在那里,让我口述第二个问题的解决方案。
两天后,我接到一个电话,说我已经完成了电话轮次,并且必须在海得拉巴进行进一步的轮次(四轮)。安排完成了我的亚马逊,我于 2013 年 4 月 27 日在他们的海得拉巴办公室出现了进一步的回合。
现场:
第 1 轮(技术):
1. 第一个问题是求二叉树的垂直和。我告诉他使用和数组/哈希的解决方案。每当我们向左移动时,我们减少索引,而向右移动我们增加索引。这个解决方案对他来说看起来不错,但他对负索引不太满意。所以他要求使用双向链表的另一种解决方案。最初我没有得到它,但是当他给出一些暗示时,我很想解决它,但是需要一些时间来解决边缘情况。有了最终的解决方案,他看起来信服了。
2. 下一个问题是在 O(1) 时间内进行 Push、Pop 和 FindMax 的 Stack 操作。我开始只使用最大变量的一个索引来执行此操作,但后来我意识到我需要所有级别的最大索引,所以给了他一个使用两个堆栈的解决方案。一个具有元素,另一个具有相应的最大索引。他看起来对这个解决方案深信不疑。
第 2 轮(技术):
1. 第二轮有两个面试官,巧合的是其中一个是接我电话面试的那个人。第一个问题是关于如何在亚马逊网站上显示产品时选择“相关”项目列表。问题是为给定产品找到最不相关的产品。最初我使用 n-ary tree 回答,但告诉他我们会有重复的条目。他要求优化解决方案,所以我建议使用 adjancy-list nut 终于意识到它可以使用图形来解决。他们被说服并被要求编写代码。我使用队列解决了它,因此在遍历矩阵时,我们将队列中的元素与其关系级别推入。他们对解决方案深信不疑。
2. 第二个问题是从双向链表中删除一个元素。我解决了它,但错过了列表中不存在要删除的元素的边缘情况。我后来添加了该检查。
3. 第三是对于给定的 BST,将元素的符号反转并最终得到一个新的 BST。我突然想到,在符号反转之后,它将是一棵镜像树,并给出了相同的解决方案。
直到此时反馈看起来还不错。
第 3 轮(技术-管理):
1. 下一个面试官是老大哥,问我工作情况。详细解释了他。
2. 后来他问我,对于一个给定的二叉树,它有三个地址字段,即left,right和bfs的后继,left和right字段被填充,后继字段将被填充。我使用带有队列的级别顺序遍历解决了它,但他想要解决方案而不使用额外的空间。当他暗示要跟踪父母时,我正在花时间解决它。在这个提示之后,我能够在缺少几个条件的情况下解决它,但是在他的干预下,我能够给出一个工作代码(就像他和我一样)。
第 4 轮(技术-管理):
1. 有两个面试官。第一个问题是告诉我关于你自己和你的工作。
2. 给定 am*n 矩阵,如果机器人从 (0,0) 开始只能向右和向下移动,我们需要找到机器人可以到达 (m-1,n-1) 块的路径数。我给了他一个使用DP的解决方案。构建显示最终解决方案的递归树。他没有要求编码,而是要求找到递归关系。我被卡住了,不知道为什么。我想这是衰退的开始。他给了一些提示,我终于可以写了,仍然。
3. 对于给定的二叉树和一个键,修剪所有路径(从根到叶)总和小于或等于 k 的树。我能够通过一些提示来解决它。这个解决方案看起来很有说服力。
四天后,我收到一封邮件,上面写着“很遗憾,我们目前无法进一步接受您的候选资格。但是,您的凭据令人印象深刻,我们希望将您的详细信息保留在我们的活动数据库中。一旦有类似的机会出现,我们会尽快与您联系。”