📜  亚马逊专访 |第 70 组(校内实习)

📅  最后修改于: 2021-11-10 06:51:43             🧑  作者: Mango

在线回合编码问题:

  1. 给定一个浮点数 7.64,不使用任何内置函数/library 将其转换为字符串。
    for eg:
    input
    float no.: 7.64
    output
    string: 7.64
  2. 给定二叉树的中序和前序遍历,输出它的后序遍历。
    for eg:
    input:
    Inorder: 7, 8, 4, 1, 6, 2, 5
    Preorder: 1, 4, 7, 8, 2, 6, 4
    output:
    Postorder: 8, 7, 4, 6, 5, 2, 1

第一轮写作:

  1. 给定一个字符串,找出没有重复任何字符的最长子字符串的长度?
    for eg:
    i/p string:
    abcabcbb
    length of longest substring with no repeating charcters: 3 (abc)
  2. 给定一个带有右指针的链表,该链表的每个元素都有一个下行链接,包含另一个带有下行指针的链表:
    5 -> 7 -> 9 -> 18
     |    |    |    |
    10    6    14   20
     |    |    |    |
    11    8    19   22
     |    |         |
    12    13        24
     |    
    15

    每个右和下列表都进行了排序。
    编写一个函数flatten() 将该链接列表扁平化为一个链接列表,其中所有元素按以下顺序排列:
    5->6->7->8->9->10->11->12->13->14->15->18->19->20->22->24


PI 第 1 轮:

面试从我简历中提到的实习项目和其他项目的讨论和提问开始。
在关于项目的讨论之后,面试官问了一个关于字符串的问题,问题是:

  1. 给出一个长度为 n 和整数 m 的字符串,给出一个算法。将字符串逆时针旋转 m。我被要求提供输入 m 的所有检查条件。
    然后面试官要求我为相同的代码编写一个严格的准则,代码中不应有任何错误;)。
  2. 在此之后,他问我关于堆、最小和最大堆、在堆中的插入和删除。他让我证明在堆中插入 n 个元素的时间复杂度。
    至少他询问了堆数据结构和其他使用堆实现的数据结构的用途。

PI 第 2 轮:

  1. 黑白抽象和接口类有什么区别?
  2. 编写一个程序来创建单线程并打印“Hello World”,说明 createThread函数的所有参数?
  3. 什么是死锁,发生死锁的必要条件是什么?
  4. 什么是高速缓存以及它是如何实现的?
  5. 解释LRU、FIFO等页面替换算法?
  6. 写个代码实现LRU缓存然后实现全缓存?
亚马逊的所有练习题!