我通过 Amazon WOW drive 2020 申请了 SDE I 的角色。总共有 5 轮(1 次编码测试 + 4 次面试)。本来应该是线下面试的,但是因为冠状病毒大流行,我在网上进行了面试。
第 1 轮:第 1 轮是在线编码轮,包括 2 个编码问题和 28 个基于 C、C++、 Java、数据结构、算法和核心主题的 MCQ。第一个编码问题是将中缀表达式转换为后缀(https://www.geeksforgeeks.org/stack-set-2-infix-to-postfix),第二个问题是找到给定数组的均值、中位数和众数.这一轮进行了1小时30分钟。
入围后,总共进行了 4 次面试,每次都是淘汰赛。每个人的时间固定为 60 分钟,每个人都涉及在面试官共享的 IDE 链接上编写完整的代码。对于每个问题,都必须说明时间复杂度。
采访:
面试 1:面试官直接从编码问题开始。
问题 1:大小为 k 的组中链表的交替反转。就像第一组应该颠倒,第二组应该相同,第三组应该颠倒,第四组应该相同等等。
例子 :
输入: 1->2->3->4->5->6->7->8,k=2
输出: 2->1->3->4->6->5->7->8
问题 2:有两个字符串给出了查找匹配和不匹配的字符。
例子 :
输入: s1 = abc s2 = abd
输出:匹配 = 2 不匹配 = 1
我能够在大约 55 分钟内解决这两个问题。面试官似乎很满意。 2天后我收到了第二次面试的邮件,2天后安排了面试。
面试 2:从面试官的介绍开始,然后是我的介绍,然后是 2 个编码问题。
问题 1:如果无法到达某些中间字符串集,则以最少的步数从一个起始字符串到达目标字符串。字符串由从 0 到 9 的数字组成,它的工作原理就像一个手提箱锁,其中从 0 可以有两个选项 1 或 9,类似地,从 1 我们可以转到 2 或 0。提示:使用 bfs 构建字符串图。
例子:
输入 :
来源 = 123
目的地 = 456
步骤 = 9
问题 2.找出所有大小为 k 的子数组的最大值和最小值之差的最大值
在这次采访中,我能够在短短 25 分钟内为这两个问题编写代码(祝你好运????)
当天收到了第三轮的邮件,第二天就面试了。
采访三:
问题1:给定一个蚂蚁家族,其中有雌性和雄性蚂蚁,给出家庭成员的b/w交互,即给出谁与谁交互,找出它是否是一个好家庭,一个家庭是否好如果只有两个不同的性别相互作用。
例子 :
输入:蚂蚁数量 = 6,交互次数 = { 1-2, 3-4, 5-6}
输出——好家庭
输入:蚂蚁数量 = 6 互动 = {1-3, 3-5, 1-5}
输出——糟糕的家庭
问题 3:下一个更大的元素
以及关于 os(用示例解释银行家算法、抖动、死锁、信号量等)、DBMS(ACID 属性)、oops 和项目的问题。
第一个问题对我来说似乎很新。经过深思熟虑,我发现交互形成的图中不应该有任何奇怪的循环。我尝试编写代码,但面试对代码不太满意。然后他转到下一个问题。由于第二个问题是一个很常见的问题,我立即开始说解决方案,面试官问你知道这个问题吗,我说是的。他让我在短短 2 分钟内写出没有任何错误的代码,而我写了它,但他却能从中找出一个错误????。
这次面试之后,我没想到会接到下一次面试的电话。但幸运的是,我在 6 天后收到一封邮件,下一轮安排在第二天。
最终面试:从介绍、项目问题和行为问题开始。举个例子,你花了一些时间,自己想出了一些东西。
问题 1:给定两个数组,仅当两个数组的平均值大于前一个平均值时,才将元素从一个数组移动到另一个数组,找出可以移动的元素
问题2:一些bfs相关的问题记不太清了
问题 3 :不使用其他堆栈的堆栈中的最小元素
在第一个问题中,我很紧张,无法想出方法。面试官很友好,帮我理解了方法,然后让我写代码。接下来的两个问题我能够解决。
大约 15-20 天后,我收到邮件说我被选为 Amazon 的 SDE。我建议面试时要有耐心和冷静。大声思考。面试官会帮助你。
祝你好运!!