最近亚马逊印度访问了我们的校园进行了 2 个月的实习。有四轮。
2 个在线编码问题 + 20 个 MCQ:
MCQ 有 15 个问题(不完全是)关于操作系统(令我感到惊讶),一个能力(概率)和依赖于 c/c++
第二轮(小组面试/笔试):
21人入选第二轮。我们有两个问题。
1. 给定两个字符串,判断它们是否互为变位词。 (太容易了)。
2. 给定一棵 n 叉树,将其转换为数组并返回。再次从该数组构造相同的 n 元树。 (DFS 在这里更好,因为需要重建) –
将根推入堆栈。 “弹出堆栈。存储根节点的值及其在数组中的子节点数。将所有子节点从右到左推入堆栈”.. 这样做直到堆栈变空.. 数组将有dfs 以及每个节点的子节点数。
对于重建,通过引用传递“i”(i 用于遍历数组)取索引 0 处的值 .. 使其具有根。增量 i。对于根的所有孩子,递归调用相同的函数。返回根。 (我希望这有效:P)
第三轮(面对面):
只选了 5 个人。我只被问了一个问题,我做得不好。求一个数的平方根。我回答说这可以用巴比伦的方法来完成。 (https://www.geeksforgeeks.org/square-root-of-a-perfect-square/) 或二分查找方法.. 他让我实现二分查找方法。我犯了一个错误。然后他让我改正。我改正了。我无法给他留下太多印象。
记住浮点算术限制..这是我失败的地方。
第四轮(面对面):
我被要求参加第 4 轮。 (因为我在第三轮表现不佳,只有我有第四轮)。面试官问了很多问题。他们很容易
1.给定一个由 0 和 1 排序的数组。查找第一次出现的 1(二分搜索)
2.给定一个由 0 和 1 组成的无限数组。(已排序)。找到第一个出现的 1
3. 给定一个按行和列升序排列的矩阵。搜索元素。这是 O(n+m)。他问我一个更好的解决方案..我尝试过,他帮了我很多..虽然我无法交付。
4. 给定一棵树,打印从根到叶的最大和路径。
5.给定一棵树,螺旋打印一棵树的列顺序。
ex : 1
/ \
2 3
/ \ / \
4 5 6 7
o/p : 4 2 6 5 1 3 7
6. 使用数组实现堆栈。使用数组实现两个堆栈。实施 3 个堆栈。
7. 给你一个数组。您必须在用户想要这样做时创建一个堆栈,并在用户说时删除一个堆栈。您不会获得将创建的堆栈数量。
我感谢 geeksforgeeks 提供了一个学习新事物的绝佳平台。检查面试角是否有其他公司面试。