📜  亚马逊专访 | 61套(实习用)

📅  最后修改于: 2021-11-16 07:52:34             🧑  作者: Mango

你好极客,上个月我参加了亚马逊的实习面试
我的个人经验是,永远不要试图立即跳到正确的解决方案,而是花时间逐步思考给定问题的可能解决方案。
仔细检查边界测试用例,并且在与面试官的谈话中也不要完全保持空白,而是继续告诉他你想到的试探性解决方案。

我的整个过程包括3轮:

  1. 在线回合。
  2. 第一次电话面试
  3. 第二次电话面试

第1轮:

    这是一个在线回合,包括 20 道选择题(来自 C 语言、操作系统、数据结构和算法以及软件开发概念)和 2 道编码问题:
  1. 给定 2 个链表构造了另一个包含这 2 个链表之和的链表。
    e.g Given :  1 -> 2 -> 3 and 4 -> 5 -> 6 Ans: 5 -> 7 -> 9
  2. 求给定二叉树的垂直和。

第 2 轮(电话):

    电话交谈的持续时间约为 60 分钟,面试官问了我 2 个编码问题:
  1. 给定一个由 +ve 和 -ve 组成的数组,通过对所有元素进行加/减运算,找出是否可以将其转换为 0。
    e.g arr[]={1,2,3}
    YES (1+2-3)
    
    arr[]={3,6,2}
    3+6-2 != 0
    3-6-2 !=0
    -3-6-2 !=0
    -3-6+2 !=0
    -3+6-2 !=0
    -3+6+2 !=0
    3-6+2 !=0
    3+6+2 !=0
    
    Hence ans= NO
  2. 给定一个二叉树,其中每个节点的结构都包含一个额外的“下一个”指针(最初全部为 NULL),修改二叉树,以便使用这些给定的额外指针连接同一级别的所有节点。
    解决方案: (GeeksforGeeks 链接)

    面试官还让我写代码。

第 2 轮(电话):

    电话交谈的持续时间约为 90 分钟,面试官问了我 2 个编码问题:
  1. 写一个代码来找出给定二叉树的直径
    首先我给出了复杂度为 O(n^2) 的解决方案,然后他让我优化它,所以最后我在 O(n) 中完成了它。
  2. 给定一个数字,设计算法以找到包含完全相同数字的下一个更大的数字。
    e.g. n= 123 next greater with same digits = 132
    The number can be very large so its better to consider it as a sequence of characters.

    我还被要求为此编写代码。

    我在准备面试时度过了非常愉快的时光,并且学到了很多新概念。
    我真的非常感谢GeeksForGeeks成为我准备工作的主要来源,相信我,这个网站很棒

    你忘了说我终于收到了确认的亚马逊实习offer 😀😛

亚马逊的所有练习题!