我在亚马逊工作门户上申请了 SDE1。几天后,我收到了来自亚马逊的考试链接。在考试中,有 2 道编码问题(DP、Greedy)和 2 道描述性问题,我们必须在其中解释我们如何解决上述 2 个问题并写下它们的时间和空间复杂性。
几个月后,我接到了一个亚马逊面试准备电话,他们解释了整个面试过程。
面试第一轮:面试官是SDE2,通过介绍自己和询问自己让我感到舒服。然后他问了我的项目,这是一个很长的讨论,花了 25 分钟。
- 然后他问了一个编码问题:https://www.geeksforgeeks.org/boggle-set-2-using-trie/。我首先告诉他 DFS 方法,然后使用特里优化。我们讨论了所有的边缘情况和时间复杂度。他似乎对我的做法印象深刻。
就在这之后,我安排了下一次采访。
第二轮面试:面试官是SDE2,直接从编码问题开始。
- 第一个问题是:https://practice.geeksforgeeks.org/problems/search-in-a-rotated-array4618/1。我从蛮力和使用二进制搜索的解释的 O(nlogn) 解决方案开始。一段时间后,我告诉她 O(n) 方法。
- 第二个问题是:https://practice.geeksforgeeks.org/problems/search-in-a-matrix17201720/1。我使用二进制搜索解决了它。
几周后,我的下一轮比赛安排好了。
面试第三轮:面试官先介绍自己,然后问自己。
- 然后他问,你有没有遇到过截止日期的问题?
- 然后问了这个问题:https://www.geeksforgeeks.org/minimize-cash-flow-among-given-set-friends-borrowed-money/。我以前从未见过这个问题,所以我花了 4-5 分钟思考。然后我向他解释了我使用 DFS 和瓶颈的方法。我们讨论了所有的边缘情况以及时间和空间的复杂性。尽管它的首选方法是贪婪的,但我能够使用 DFS 以相同的时间复杂度完成它。他对我的解决方案很满意。
第四轮安排在第二天。
面试第 4 轮:
- 面试从编码问题开始:https://practice.geeksforgeeks.org/problems/add-two-numbers-represented-by-linked-lists/1 他说不要修改输入,所以我用recursion with some状况。他对解决方案印象深刻。
- 然后他又问了一个问题:https://practice.geeksforgeeks.org/problems/print-a-binary-tree-in-vertical-order/1。我使用预序遍历解释了该方法,然后他说它会在某些情况下给出错误的答案,所以我使用了级别顺序遍历。他还让我说出这个问题的高效和优化的数据结构。
- 你有没有自学过一些东西。
- 你想在什么技术上工作。
然后他说我们会在7天内通知你。
7 天后,我接到 HR 的电话,说你被选中了。
不断解决问题,获得所有 CS 学科的基础知识。了解亚马逊领导力原则并相信自己。