📜  亚马逊面试经历|第 376 集(在校实习)

📅  最后修改于: 2021-11-10 06:20:14             🧑  作者: Mango

亚马逊访问我们的校园(Jadavpur 大学)招聘实习生和 FTE。分享一下我的实习面试经历。
总共有 3 轮 – 1 轮在线轮次,然后是 2 轮 F2F 面试。
在线回合(Hackerearth 90 分钟):

有 20 道题主要基于 C、C++、DS、推理,还有一些来自 OS、OOPS、DBMS 等和 2 道编码题。
2个编码问题是:

  1. 求以 k 为最大元素的非重叠连续子数组的最大长度总和。
    Ex: Array: {2,1,4,9,2,3,8,3,4} and k = 4
    Ans: 5
    {2,1,4} => Length = 3
    {3,4} => Length = 2
    So, 3 + 2 = 5 is the answer
    

    解决方案:GeeksforGeeks 链接

  2. 给定一个数组 A,其中 A[i](基于 1 的索引)表示对应于每个站点的巧克力数量。当我们从站 i 移动到站 i+1 时,我们免费获得 A[i] – A[i+1] 巧克力。请注意,如果这个数字是负数,我们会损失那么多巧克力。我们只能从站 i 移动到站 i+1,而且当且仅当我们有非负数量的巧克力时。鉴于一块巧克力的成本是卢比。 P ,我们的任务是找到从第一个站点(站点 1)到达站点 n 所产生的最小成本。
    Ex: A: {1,2,3} and P = 10 Ans: 30
    To reach station 1 from the starting station, we need to buy 1 chocolate.To reach station 2 form station 1, we get A[1] – A[2] = -1 chocolates i.e. we lose 1 chocolate. Hence, we need to buy 1 chocolate.Similarly, we need to buy 1 chocolate to reach station 3 from station 2.Hence, total cost incurred = (1+1+1)*10 = 30.
    

    解决方案:GeeksforGeeks 链接

在大约 150 名学生中,有 26 人入围了第二轮。

-> 在第一个问题中,那些使用 cin/cout 而不是 printf/scanf 的人在 20% 的测试用例中得到了 TLE。

->在第二个问题中,没有使用 int 而不是 long long int 传递单个测试用例。我在这上面浪费了大约 40 分钟。

->做 MCQ 很重要。少数同时解决了编码问题但没有尝试 MCQ 的学生未被选中,而一些可以解决 1 个问题(8/10 测试用例)的 80% 和少数 MCQ 的学生被选中。

第 2 轮:FTF 面试(约 30 分钟):

  1. 面试官让我介绍一下自己。
  2. 计算距离二叉树中给定节点距离为 k 的所有节点。它与距离给定节点 k 距离处的打印节点非常相似。
    突然他走出房间,大约20分钟后来了。 那时我想出了O(n)解决方案,我用伪代码向他解释。

    然后,他问我有没有什么问题要问他。

第 3 轮:FTF 面试(约 45 分钟):

面试官先让我自我介绍,然后问我第一轮问的问题。然后,她问我关于线程的问题。我告诉她我没有很好地学习Java 。此后她没有再问任何与Java有关的问题。

  1. 在行列矩阵中搜索我从 O(RlogC) 解决方案开始,她告诉我优化它,一段时间后我终于给出了 O(R+C) 解决方案。她让我编写代码。
  2. 整数流即将到来,您需要随时跟踪最小值,您会使用哪个 DS?我告诉她,我将简单地将数字存储在一个向量中,并保留一个变量 min 并在需要时更新 min。然后她告诉我如果你需要找到 Kth 最小值怎么办。我让她再次解释这个问题,然后她问了数组中第 K 个最大或最小的元素。我们讨论了各种方法。她让我编写最大堆方法(允许使用 STL)。然后她问了我关于堆的各种问题。
  3. 如何有效地表示堆?我告诉她数组表示,然后她让我用指针解释那个。之后,她问我哪个更好,为什么?我列出了各种原因,其中之一是数组对缓存友好,她让我详细说明这一点。她还问了我一些关于缓存的问题。
  4. 她让我详细解释堆排序。
    GeeksforGeeks 链接
    我们讨论了大约 5 分钟,详细介绍了所有内容。不需要代码。
  5. 用最小成本连接N根绳子最初我的方法是错误的,她展示了一个失败的案例。一段时间后,我告诉她 O(N*N) 方法是正确的,她让我优化它并告诉我想一些我可以使用的 DS。最后,我想出了使用堆的解决方案,她问我对其进行编码。

最后,她问我有什么问题要问她。这轮我的经验非常好,面试官非常乐于助人和友好。

在面试的26人中,最终选择了13人实习。

在我准备期间,geeksforgeeks 确实是一个很大的帮助。面试中问的几乎所有问题都来自极客。非常感谢其他极客以及分享他们的面试经历,因为回顾过去的经历是结束我准备工作的完美方式。