最近,我接受了 Amazon Pay Team 的Amazon SDE II 的面试。以下是问题:
第 1 轮:(书面:笔和纸)(3 个问题)
- 给定一个一维数组。如果存在 a[i]+a[j] = 0 && i!=j 的元素,则返回 True。
参考:GeeksforGeeks 链接Input : arr = {2,-3,4,1,-6,-4,1} Output : True Input : arr = {2,3,4,1,-6,4,1} Output : False
- 与买卖股票相关并获得最大利润。一次只能买入或卖出 1 个单位。
参考:GeeksforGeeks 链接 - 给定一棵树(它是一个 BST),替换所有具有数据 >= 节点数据的节点的数据。
解决方案:GeeksforGeeks 链接
(即使示例与上面的链接相同;))
第 2 轮:DS 和算法 (F2F)(3 个问题)- 为链表末尾的第 n 个节点编程
解决方案:GeeksforGeeks 链接 - 打印大小为 k 的所有子数组的最小值和最大值(两者)
参考:GeeksforGeeks 链接
注意:参考链接仅适用于最小值或最大值。在这里,我们需要在一个程序中同时使用 min 和 max。 - 从文件(或输入流)中找出 k 个最常用的词
解决方案:GeeksforGeeks 链接
结果:我因为一些基本错误(在 Q3 中)而被淘汰,这是我离开面试室后才意识到的。这是一次不错的体验。
我还想分享一些其他候选人被问到的问题:
- 设计调试器(在第二轮中几乎问过每个人)
- 设计优步应用
- 打印距离给定节点 K 处的所有节点
- 连接同级节点
- 到达终点的最少跳跃次数
面试官非常友好和乐于助人。他们会在您遇到困难时为您提供帮助(使用提示),但他们也会检查您对基础知识的掌握程度。
谢谢!!!… 希望这将有助于有抱负的候选人。
亚马逊的所有练习题!
- 为链表末尾的第 n 个节点编程