亚马逊专访 | Set 96(校内实习)
我是三年级毕业生,亚马逊参观了我们的校园。我的面试只有3轮。
第 1 轮(在线第 20 轮 MCQ 和 2 道编码问题)
MCQ 主要是关于数据结构、时间复杂性和 C、C++ 输出,有 2 个能力问题。
1)给定2个数字链接列表作为它们节点中的数据,添加两个数字。
Eg: 1 -> 2 -> 3 -> 4 and 4->3
print 1 - > 2 -> 7 -> 7
2)给定几组间隔打印出整个间隔而不重叠,如果它们重叠,则将它们组合成一个。
Eg: Input : (5,7) (1 , 6) (2 ,4) (10 ,14) (8,9)
Output : (1,7) (8,9) (10,14)
第 2 轮 (F2F)
告诉我一些你的事吧。
1) 将 BST 就地转换为中序、前序和后序链表。
2)从 2 个堆栈中排成一个队列,因为他让我编写代码并问我复杂性很容易。
3)给定一个带有循环的链表,找到循环并使其变直。我用 HashMap 做了,但他告诉我不要使用额外的空间,所以我告诉他弗洛伊德的循环。
他问我有什么问题。
第三轮(F2F)(午餐后)
1)给定一个二叉树转换成一个没有辅助空间的 BST(我用中序遍历做到了)他让我编码。
2)给定一个无限的字符流,在任何实例中找到第一个不重复的字符,存储,检索应该是 o(1) 。
我告诉他一个使用哈希图的解决方案,然后他修改说他可能有数百万个独特的字符,而不仅仅是字母。
我给出了一个带有链表和哈希图的解决方案。这个问题不是问我的,而是问我的朋友的。这是一个很好的问题。
3) 打印数字从 1 到 n 的所有二进制值,每个数字的二进制应打印在 0(1) 中。
例如:n = 6
然后打印 1 10 11 100 101 110。打印 1, 10 ,11 ,100,101,110 应该在 o(1) 中
我感谢 Geeksforgeeks 让我知道弗洛伊德的循环。