亚马逊暑期实习面试体验(校内)
第 1 轮:在线轮(2 小时)
在线回合分为3个部分。
1. 这部分有 7 个问题。给出了部分代码,我们被要求根据预期的输出调试它们。这些都是简单的问题,任何对编程知之甚少的人都可以解决它们。(15 分钟)
2. 本部分有 24 个问题,由基本的逻辑推理问题组成。(35 分钟)
3. 本节有两道编码题。(70 分钟)
- 给定一个按行和列方式排序的矩阵,检查给定元素是否存在于矩阵中。提示:对每一行使用二进制搜索。时间复杂度 O(nlogn)。
- 求给定时间段内以循环方式执行的给定进程的平均等待时间。 https://www.geeksforgeeks.org/round-robin-scheduling-with-different-arrival-times/
此外,在线比赛结束后,还有一个赛后调查。您必须公平地填写这份调查表。
第二轮:面对面面试(1小时)
一开始他让我自我介绍。你可以吹嘘你从小就做过的事情,但这不是任何面试官想要听到的。他只对你近年来的技术发展感兴趣。试着专注于你在过去几年中学到和完成的事情(仅限技术部分)。
在介绍之后,他问我关于我的项目、它的功能以及我在其中的贡献。
然后他问了我两个编程问题:
- 给定不同房屋中硬币数量的数组,找到通过从子数组中添加相同数量的硬币可以获得的最大总和。提示:https://www.geeksforgeeks.org/the-stock-span-problem/
- 给定一个数组和一个值 k,你必须在所有大小为 k 的不同子数组中找到最大值。提示:https://www.geeksforgeeks.org/sliding-window-maximum-maximum-of-all-subarrays-of-size-k/
我建议大家不要直接进入最终解决方案。而是向面试官解释从最坏情况到最佳情况时间复杂度的所有不同可能的解决方案。这表明面试官您对给定主题有适当的了解。另一个建议不要直接开始编码,首先提出一个你认为精确的算法,然后分析你的算法(时间和空间复杂度),然后开始编码。不要错过角落测试用例,无论你多么优秀,它都可能发生在任何人身上,安全总比后悔好。
在编程问题之后,面试官问了我有关 CN、OS、DBMS 和 OOPS 概念的问题。
在 CN 他让我解释你点击一个链接后在后台发生的一切。
在操作系统中,他向我询问了有关分页的所有信息,从它的需求到与之相关的所有概念。
在 DBMS 中,他向我询问了 ACID 属性以及示例。
然后他问我关于 OOPS 的概念。记住例子很重要。
然后他结束了采访,问我是否有任何问题。这很重要,您必须至少提前准备一个问题。我问他如果我被选中,是否需要提前为实习做准备。
最后但并非最不重要的一些重要准备工作:
https://www.geeksforgeeks.org/data-structures/
https://www.geeksforgeeks.org/fundamentals-of-algorithms/
https://www.geeksforgeeks.org/Amazon-topics-interview-preparation/
祝大家好运!!