亚马逊为一组大学开展了招聘活动。
该过程包括 3 轮:一轮在线测试,然后是 2 轮技术面试。
在线测试:
它由4个部分组成:
- 调试:它由 7 个问题组成,有小代码片段,提供问题陈述和预期输出。应该修改尽可能少的语句,以便代码解决给定的问题并通过所有测试用例。
- 编码:由 2 道中等水平的问题组成。一种基于地图,另一种基于图形。
- https://leetcode.com/discuss/interview-question/373006
- https://leetcode.com/discuss/interview-question/868371/amazon-oa-critical-connections
- 行为部分:本部分包含的问题主要关注您的个性和行为。
- 逻辑共鸣:能力问题,也侧重于语言能力。
一个月后我收到了测试结果。然后安排了面试。
技术面试 1:(60 分钟)
通常,他们在这次面试中会问 2 个编码问题,但根据问题和分配的时间,他们也可以只问你一个问题。所以从一开始就全力以赴。
面试官先自我介绍,然后让我做同样的事情。介绍完后,我们直接跳到了编码。他们为您提供了一个 Live Code 平台。
- https://www.geeksforgeeks.org/boggle-find-possible-words-board-characters/ (略有改动)
所以,这是一个基于遍历的问题,可以使用 BFS/DFS 遍历或 Trie 数据结构(最佳解决方案)来解决。我最初是从尝试 DFS 遍历开始的。然后面试官让我优化一下。然后我讨论了使用 Trie 数据结构的解决方案。面试官似乎很满意,然后让我编写解决方案。
讨论进行得非常顺利,编写解决方案需要一些时间。我们超出了分配的时间,所以我没有机会向面试官提问。
3-4 小时后,我接到了 HR 的电话,说我在接下来的 15-20 分钟内安排了第二次面试。
技术面试 2:(60 分钟)
采访和上一次一样,有双方的介绍。然后我被要求简要介绍我的任何一个项目。在此之后,我们开始了编码部分。
- https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/ :这需要对二进制搜索算法稍作改动。我像往常一样开始使用蛮力方法。之后,面试官想要一个优化的方法。我使用二进制搜索的修改尝试了一些递归解决方案,但效果不佳。后来在面试官的很多提示下,我能够解决这个问题。
- https://www.geeksforgeeks.org/print-left-view-binary-tree/ :这也是 BFS 在树上遍历的轻微变化。首先,我先讨论了解决方案,然后面试官让我编码。
然后面试官问我有没有什么问题要问他,之后一轮结束。
最终判决:拒绝
我想我在第一个问题上从面试官那里得到了很多提示,导致我被拒绝了。
重要的收获:
有时,如果我们第一次尝试失败,我们应该从更广泛的角度看待问题,将问题视为一个新问题。那肯定会有所帮助。
继续与面试官交谈。他一定会帮助你找到正确的方法。只要仔细听他们说。
在确认解决方案之前尝试跟踪样本输入。
最后,祝您的面试一切顺利。保持冷静和沉着。从一开始就全力以赴。
永远记住,定义我们的是我们跌倒后的崛起。其他的一切,只是我们生活的一部分。