亚马逊面试经历 |设置 382(全日制校内)
选择过程从在线编码轮开始。
20 个 MCQ 和 2 个编码问题:
MCQ 来自 OOP、操作系统、DBMS、网络等。
编码问题:
- 将给定的矩阵旋转系数 k。输入以两个整数 n,m(矩阵的行和列)的形式给出。接下来是 n 行,其中 m 个空格分隔的整数作为矩阵的所有元素。最后一行有一个整数 k。
GeeksforGeeks 链接Input: 3 3 1 2 3 4 5 6 7 8 9 2 Output: 7 4 1 8 5 2 9 6 3
- 给定一个字符串。找到字符串的所有回文分区。 (可以对字符串进行分区的方式数,以便所有分区都是回文)
GeeksforGeeks 链接Input: str = "NITIN" OUTPUT: 3 N I T I N N ITI N NITIN
Face2Face(采访)
第1轮:
他马上问了编码问题——
- 添加两个数字而不使用 +,-运算符、递归或循环。
试着用半加器来思考。
GeeksforGeeks 链接 - 不使用递归的后缀前缀。
GeeksforGeeks 链接 - 给定一个数字数组。通过将所有数字连接在一起,最大的不可能是什么。
GeeksforGeeks 链接Input: 5 21 30 1 9 98 Output: 99830211
- 编写 heapify 代码。
第 2 轮:
- 树的级别顺序遍历。此外,他要求优化代码。
GeeksforGeeks 链接 - 给定一个矩阵。 “0”表示空房间,“1”表示门,“-1”表示墙。对于每个单元格作为一个空房间,找到到最近的门的距离(一个人不能穿过墙)。
GeeksforGeeks 链接Input: 5 5 0 0 1 -1 1 0 -1 0 0 -1 0 0 -1 0 -1 1 -1 1 0 0 0 0 0 0 0 Output: 2 1 0 -1 0 2 -1 1 2 -1 1 2 -1 2 -1 0 -1 0 1 2 1 2 1 2 3
门将替换为 0,因为到最近的门的距离为 0。
我从回溯解决方案开始。但那家伙不知道那是什么。我给出了更多解决方案,并以 O(N) bfs 解决方案结束。
大伙直接回答。不要回答非常复杂的算法,即使它们是正确的。尝试提供尽可能强力的解决方案。