最近,通过推荐,我有机会在班加罗尔校园接受亚马逊的采访。 我在一家以产品为基础的公司有8个月的工作经验,还有5个月的实习期。
第一轮电话: 有两个人,一开始是正式的介绍。 问题1: 给定一个数组和一个数字,说“Num1”。求两个和等于给定数“Num1”的数。
我先告诉他暴力解决方案,然后他问时间复杂度,我告诉他O(n^2)。 然后他让我优化解决方案,我用排序给出了一个O(nlogn)解决方案。 最后我告诉他使用散列的O(n)解。
问题2: 考虑到一系列股票价格。确定一个人可以获得的最大利润 购买 和 出售股票(类似于堆栈跨度问题)。 我告诉他O(n^2)的蛮力解,然后他问我能否给出一个优化解。 我告诉他使用堆栈的O(n)解决方案,但一些测试用例的代码被卡住了,他要求我修改代码,但我不能,因为它们的时间不多了。 他们给我提供了一个指向Colabedit(一种谷歌共享文档)的链接,我必须在那里编写代码。需要生产就绪代码。 两天后,我接到亚马逊的电话,说反馈是正面的,他们让我来亚马逊办公室进行面对面的面试。
F2F第1轮: 从简单的介绍开始。 问题1: 给定一个M*N矩阵。你必须从索引(0,0)开始,达到索引(M-1,N-1)的最大和,考虑到你只能向右或向下移动的限制,即如果你在索引(i,j),你只能移动到索引(i,j+1)或索引(i+1,j) 我给出了这个问题的递归解决方案,并对各种测试用例进行了大量讨论。 他让我优化代码。我给了他动态规划的方法。他问你以前做过吗,我说没有,然后他让我编码。我不知道这段代码,因为我以前没做过。我努力写了2-3次正确的代码,最后我写了正确的代码。 然后他对我说,面试结束了,你有什么问题要问我吗?我问了两个问题。
需要生产就绪代码。
F2F第二轮: 再次从简单介绍和一些项目讨论开始。 问题1:类似于 LCA(最不常见) 祖宗 )树的 我立即给出了答案,因为我理解了这个问题,没有要求任何进一步的澄清。 问题2:给定一些链表形式的资源,你必须取消所有加起来为0(零)的资源,然后返回剩余的列表。 我立即给出了解决方案,但无法处理一些角落测试用例,然后他要求我相应地修改代码。 然后他让我写所有的测试用例,我写了。 例如:;考虑到这样的资源: 案例1:6-684-1298-8当所有其他的被取消时,它应该返回9。 在上面的示例中,列出了哪些被取消: 6 -6 8 4 -12 8 -8 o/p:9 案例2:468-910-9 o/p:46 案例3:46-108910-1910-1825 O/P:20 25
F2F第三轮: 从正式的介绍开始,顺便说一句,他就是接受我电话采访的那个人。 问题1)他问我 子集和问题 即;给定一个数组,找到最大和的连续子数组。 在O(n)提出这个问题后,我立即给出了一个求最大和的解,因为我知道这个解。 然后他让我跟踪一些测试用例的代码,结果通过了。然后他让我找到子数组的起始索引和结束索引,我修改了代码,最初出现了错误,但经过一些修改,我得到了正确的代码。
问题2) 由两个链表表示的数字之和。 在他回答完问题后,我立即给出了答案。但我给出了从一开始就添加两个链表数字的解决方案,但他告诉我添加这些数字,就像我们在普通加法中所做的那样。 我给出了一个解决方案,通过反转链表,然后添加数字,最后反转结果列表。 2-3天后,我接到亚马逊的电话,说我已经完成了面试,他们让我来参加招聘经理面试。 一位面试官给我的反馈是,他在面试官提出问题后,我立即给出了答案,这对我来说是一个重大挫折。 尽管你们都不知道答案。问一些澄清问题,因为他们也会观察你的编码问题解决技能。
招聘经理第F2F轮: 从一些基本问题开始,然后问你为什么要离开现在的公司,然后他问斐波那契数列的代码。 我解释了斐波那契数列,然后他让我给它编码。 我编写了代码并追踪了一些输入。 然后他开了一个会议,因为我到达那里很晚,所以他要求我改进代码,因为他说代码中有一些错误,我做到了。 之后,他让我为它编写递归代码。 然后他问代码的时间复杂度,我说是指数。 然后他让我证明。 我说,先生,我可以用主定理或数学归纳法来做。但现在我一个都不记得了。 然后他告诉我,你可以不用主定理或MI。然后在我的脑海中,它给我的印象是递归树方法,但当时我对递归树方法也没有任何概念。所以我不能告诉他。 这一轮不是正面的,因为我在面试后就知道了。这一轮之后我被淘汰了。
如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。