📜  亚马逊专访 | Set 52 (实习用)

📅  最后修改于: 2021-11-17 07:53:25             🧑  作者: Mango

大家好,这是我在亚马逊实习的面试经历。希望能帮助到你:

第1轮:

    90 分钟内包含 20 道客观题(与数据结构、算法分析、C 语言和一些谜题相关的题)和 2 道编码题的在线回合
  1. 编写一个程序来反转链表的 k 个备用节点
    Ex: 1->2->3->4->5->6->7->8->9
    If k is 3 Output should be: 3->2->1->6->5->4->9->8->7
  2. 给定一个字符串。编写一个程序,用所有单词的第一个字符组成一个字符串。
    Ex: The bucket is full of water
    Output: Tbifow

    检查所有边缘和角落情况。

第二回合:面对面回合

  1. 给定一个二叉树。以这样的方式修改它,以便在修改后您可以仅使用右指针对其进行预序遍历。在修改过程中,您可以使用右指针和左指针。编写完整的代码并为一些测试用例试运行它。
  2. 给定 2 个链表。找出它们是否相交。如果是,找到交点。为它编写完整的代码。

    我不记得简单的方法:找到列表的长度,然后通过长度差向前移动较短的列表并找到交点。相反,我在第二个列表的末尾加入了第一个列表的末尾,然后通过弗洛伊德循环查找算法进行了循环查找。虽然都是O(n),但他印象深刻,因为这是一种新方法。

第三回合:面对面回合

  1. 给定一个由 0 和 1 组成的排序数组。找出没有。其中 0 个。编写代码的递归、迭代版本并检查所有测试用例。
  2. 不使用额外变量来检测级别(使用一个堆栈和一个队列)以及其他一些实现的螺旋级别顺序遍历。
亚马逊的所有练习题!