第 1 轮(在 Hacker Rank 平台上编码):
- 给定一个字符串数组,每个字符串都有一个 id 和与之关联的版本。带有字母版本的字符串是旧版本,带有数字版本的字符串是新版本。我们需要排列要翻新的字符串,以便旧版本的字符串(带有字母版本的字符串)需要按字典顺序排在最前面。如果排列有任何冲突,则按照 id 的字典顺序排列它们。修改后的字符串需要按照输入顺序保留。
Example: Input:{a a , c b , b b, a 1, b 2} Output:{a a , b b , c b, a 1, b 2}
预期时间复杂度 O(N* log(N))。我能够用堆(C++ 中的优先队列)解决它。
- 给定一个二维数组,每个单元格的值分别为 1, 0, 9,其中 1-> land , 0-> sea , 9->obstacle,我们只能在陆地 (1) 中遍历。
需要找到到达障碍物所需的最小步数(9)。我们只能向右、向左、向下和向上遍历。
预期时间复杂度: O(M * N) 。我能够用 BFS(广度优先搜索)解决它
第 2 轮(Amazon chime 配对编码 F2F):
- 给定一个包含姓名和电话号码的联系人列表,我们需要将具有相同姓名或相同电话号码的联系人分组在一起。
Example: Input :{{abc ,9987},{xyz,9986},{dfg,9987}} Output:{{{abc ,9987},{dfg ,9987}},{{xyz,9986}}}
联合查找算法或深度优先搜索算法适用
- 给定一个 Sorted 数组,除了一个数字外,每个数字都恰好重复两次,我们需要找到那个数字https://practice.geeksforgeeks.org/problems/find-the-element-that-appears-once-in-sorted-array0624/1#
Example: Input:{1,1,2,2,3,4,4,5,5} Output: 3
预期时间复杂度:O(log(N)) 二进制搜索适用
- 线程和进程的区别
- DNS 服务器机制
第 3 轮(Amazon chime 配对编码 F2F):
- 给定数组中的进程 id 和单独数组中这些进程 id 的父进程,以及我们需要杀死的进程 id。找到在杀死给定进程时将被杀死的进程列表。
例子:
pid{1,2,3,4,5,6,7,8,9} parentpid{2,0,2,3,3,3,3,4,5} Killing Process: 3 Output :{4,5,6,7,8,9}
在父子进程之间创建有向图并执行BFS(广度优先搜索)
- 给定一个链接,改变链接列表如下
Input:l1->l2->.. ln-2->ln-1->ln Output: l1->ln->l3->ln-2...
通过备用节点将链表分开,我们得到两个链表,将第二个链表反转,然后将它们连接起来。
https://practice.geeksforgeeks.org/problems/reorder-list/1 - LRU 缓存实现的讨论。 (双链表和HashMap)
- 亚马逊领导原则问题。 https://www.amazon.jobs/en/principles
第 4 轮(Bar Raiser Round F2F-Amazon chime):
- 关于亚马逊领导力原则的几个问题
- 给定一个代表 Covid 患者的字符串,我们需要按字典顺序隔离(删除)字符串中的每个字符
每次隔离的代价等于字符的索引值
Example 1: Input : aacb Output : 1+1+2+1=5
使用双链表进行更改,使用哈希图进行字符频率。
第 5 轮(招聘经理-Amazon Chime):
- 关于亚马逊领导力原则的几个问题
- 给定一个整数数组,找到总和离零最远的对。
- 上述问题的一些变化
最后,在 5 轮之后,我收到了一封来自 HR 的邮件,说明了我的选择。