📜  亚马逊面试经历|设置 424(用于 SDE 2)

📅  最后修改于: 2021-09-23 06:14:35             🧑  作者: Mango

第 0 轮:在线编码测试(90 分钟 – 4 道编码问题)

  1. 行程编码
    Input : aaaaaabb
    Output : a5b2
    
    Input :aaaaabccc
    Output :a5bc3
    
  2. 链表对和计数
    Input : list = 0 -> 2 -> 5 -> 7 -> 4 -> 6 -> 10 -> 20 -> -10 -> Null
            Sum = 10
    Output : 3
    Explanation: (4, 6) (0, 10) (20, -10)
    
  3. 将双向链表旋转 N 次
    Input : NULL <= a =><= b =><= c =><= d =><= e =><= f =><= g =><= h => NULL
            Num = 4
    Output : NULL <= e =><= f =><= g =><= h =><= a =><= b =><= c =><= d => NULL
    

    GeeksforGeeks 链接

  4. 给定二叉树,如果 x 存在,则查找 x 节点的级别,否则返回 0。
    GeeksforGeeks 链接

1 个月后,招聘人员要求进行 f2f 轮次。同一天有4轮。

第 1 轮:招聘经理轮(行为 + 设计)(1.5 小时)

介绍、项目和大量行为问题

  1. 项目最大的挑战,你是如何解决的? (选择最近的和最好的)
  2. 告诉我你指导某人的时间?
  3. 告诉我什么时候你的经理不在,你不得不做出一些重要的决定?
  4. 告诉我什么时候你必须自己深入研究某事?

很多其他行为问题。最后给出了一个需要解决的设计问题。

设计:
将 Splitwise 应用程序与 Amazon Pay(或 Paytm)集成
1)一个人可以支付给另一个人,钱直接存入另一个人的银行账户。
2) 一个人也可以发送提醒给另一个人拥有钱。

第 2 轮:设计轮(1.5 小时)

  1. 详细讨论项目及其设计,您将如何扩展项目以支持 n 个用户。重点是可扩展性和分布式设计。
  2. 设计作业调度程序、可扩展性、容错性、高可用性、调度程序如何获取作业、
    您将如何处理一项工作可以运行 30 分钟,一项工作可以运行 30 小时,您将如何在服务器上分配工作。
    根据频率和时间,您将如何执行它们?
    您将如何通知用户有关开始/停止或完成工作的信息?
    您的系统如何知道作业是否因未知原因被终止/终止?

第 3 轮:编码轮(1.5 小时)

  1. 给定数组和链表,其中元素来自数组但也可以重复。
    按顺序对链表进行排序,元素出现在数组中。预计 O(n) 复杂度。期望在纸上完成运行代码。所有边界条件检查都是预期的。
    Input : arr = {5, 1, 3, 2, 8}
            list = 3 -> 2 -> 5 -> 8 -> 5 -> 2 -> 1 -> X
    Output : 5 5 1 3 2 2 8
    

    GeeksforGeeks 链接

第 4 轮:编码轮(1.5 小时)

  1. 给定一个 n 叉树,基本上是一个图,但连接并且不包含循环。
    每条边都有一个权重,识别从所有顶点到所有顶点的所有路径,然后是所有路径的总和。
    将最终结果作为所有路径的总和。
    Ex:
    10          20
    A-------B--------E
    30/ \40       \ 50
    /     \            \
    C       D            F
    
    Here all paths and their sum are as follows: Ans should be sum of all of them.
    A-B = 10
    A-E = (10+20)
    A-F = (10+50)
    A-C = 30
    A-D = 40
    B-E = 20
    B-F = 50
    B-C = (10+30)
    B-D = (10+40)
    C-D = (30+40)
    C-E = (30+10+20)
    C-F = (30+10+50)
    D-E = (40+10+20)
    D-F = (40+10+50)
    E-F = (20+50)
    

    先写数据结构来解决这个问题,然后是高效算法,然后在纸上完成工作代码。

总的来说,这是一次积极的经历,招聘人员让我了解进度和下一轮。前四轮打得很顺利,但我没能解决第五轮的问题,之后就被淘汰了。

非常感谢 geeks 为 geeks 提供如此大量的收藏来练习。

建议:

  • 请为行为问题做好准备。为所有问题准备一两个示例。大多数都可以在这里找到:http://kraftshala.com/how-to-raise-the-bar-in-the-amazon-interview/
  • 认真准备设计回合,他们在您的设计中寻找可扩展性、高可用性和分布式系统架构。
  • 对于编码,请准备好您的基础知识并使其深入,练习使用笔和纸编写代码。