亚马逊专访 |设置 84
我在班加罗尔的世界贸易中心参加了亚马逊的招聘活动。
第一轮是编码测试(笔试):
1. 给定字符串括号,如果它是平衡的,写一个函数。
2. 将 BST 转换为双向链表。
3. 找出段落中单词出现的次数。
第一回合 :
1. 问为什么选择亚马逊?
2.问了一些关于简历的问题。
在进行了一些友好的交谈后,跳到了技术性但简单的问题上:
1. 实施 BFS。
2. Dijkstra 和 BFS 的区别。
3. 给定一个链表,判断链表是否是循环的,同时找出循环的起点。
4. 给定一个数组,找到一个子数组的最大和。
5. 如果你有两个鸡蛋,你最多需要多少步才能找到鸡蛋破裂的地板。
还有一些更简单的问题。
已经是 5 轮了,所以他们决定以后再打几轮。
10天后,我参加了面试:
第一回合 :
1.询问堆,给定一个数组,判断是否是min heap,如果不是,应用操作min-heapify。
2. 堆是完全二叉树吗?
3.问什么是hashmap。
一种。当两个数字映射到同一个键时会发生什么?
湾。链接是如何工作的?
C。当你有一个不好的哈希函数时怎么办,只有我们可以修改hashmap的结构而不是哈希函数?
d。当你的哈希图被完全填满时该怎么办(因为所有的链表都被填满了)
4. 什么是快速排序?实现链表并说明复杂性。
第二轮 :
1. 什么是快速排序?
一种。对所有元素进行排序后,复杂性是什么?如何改进它? (随机化)
湾。当元素相同时,随机化会起作用吗?
C。什么算法在 O(n) 时间内对相等的元素进行排序?
d。使用这些信息,您如何改进快速排序?想想,还不错。不想在这里写答案为你破坏它。
e.实施此修改。
2. 给定两条河岸(可视化:两条平行线),一条河岸的数字(1….n)按排序顺序排列。在另一岸,数字 (1…n) 是随机排列的。从bank 1的第i个点到bank 2的第i个点可以形成一座桥。找到你可以形成的最大非相交桥数?
3. 给定 1…n ,并给定一些陈述,例如 i 讨厌 j,然后找到 n 个数的排列,如果 i 讨厌 j,那么在排列中 i 在 j 之前。说 1 讨厌 2,那么 123456789 可以接受,但 213456789 不可以。
4. 询问互联网。当您在浏览器上键入 URL 时会发生什么?
第三轮(招聘经理):
1. 为什么要离开现在的公司?
2. 为什么你认为亚马逊是适合你的地方?
3. 实现一个计算器,它接受一个数学表达式并计算它并打印结果。
4. 给定的陈述,如 A 连接到 B。D 连接到 E。并且允许传递连接。编写一个代码,输入这样的连接语句和两个数字 i 和 j,如果 i 和 j 连接(可以传递)返回 true,如果不连接则返回 false。