亚马逊面试经历 |设置 250
第 1 轮(技术):
我最初进行了一次电话采访,从我的基本介绍和一些关于我当前工作的问题开始。然后他问了几个二叉树相关的问题:
1.1 检查给定的二叉树是否为 BST。
1.2 在 BST 中,每个节点都有一个附加属性“分数”以及值。您需要编写两个函数:
一种。 Update(value, newScore) -> 将值为 'value' 的节点的分数更新为 newScore
湾。 SubTreeScore(value) -> 获取子树中所有节点的分数总和,其中节点具有值'value'作为根
面试官想要更新的 O(logn) 解决方案和 SubtreeScore函数的 O(1) 解决方案。我们可以改变节点的结构来添加额外的属性
C。讨论上述对树中删除节点情况的解决方案(SubTreeScore如何仍然有O(1)的解决方案)
这一轮结束后,我立即接到了下一轮的电话,这是一个现场面试活动
第 2 轮(技术):
当天约有 30-40 名应聘者参加了现场面试,这一切都始于包含 3 个问题的书面编码测试:
2.1 二叉树的层序遍历
2.2 记不太清了,与数组的成对异或运算有关。我只能为此给出一个 O(n^2) 解决方案。
2.3 给定一个矩阵,每个节点都有一个值。您从 0,0 开始,必须达到 n,m。从 i,j 您可以转到 i+1,j 或 i,j+1。当您踏上每个积木时,该积木上的值将添加到您当前的分数中。您必须携带的最低初始分数是多少,这样您才能始终达到 n,m(通过任何可能的路径),最终获得正分数。
Eg: Matrix -> 2 3 4
-5 -6 7
8 3 1
Ans -> 6 – 对于路径 2,-5,-6,3,1,我们需要初始分数为 6,这样当我们落在 1 时,我们的正分数为 1
在此之后,每个人在同一天最多进行 3 次面试,以每一轮的资格为准。
第三轮(管理):
大约 80% 的面试是关于我目前的工作和所有细节的最微小的细节。
设计一个汽车系统 -> 两轮/三轮/四轮车,汽油/柴油/汽油,齿轮/非齿轮和这样的分类
您将如何检测键盘/鼠标何时连接到计算机?我说过我们会有一种监听器,它们会持续监听一个端口并采取相应的行动。他坚持要一个没有听众的解决方案。对此进行了 5 分钟的讨论。
第 4 轮(技术):
4.1 包含字符作为值的链表。查找链表是否为回文。
4.2 建桥问题
4.3 二叉树的底视图
第 5 轮(技术):
5.1 pow(a,b) 需要涵盖所有可能的情况
5.2 LRU缓存实现
5.3 给定一个数字数组,通过连接所有数字形成可能的最大数字。需要返回一个字符串。
在此之后,我被告知我可以离开这一天,但下周将再次被要求进行现场面试。
第六轮(招聘经理):
同样,70-80% 的时间花在我目前的工作上,每件事的细节以及典型的行为问题,如面临的障碍、与经理的分歧、冲突等。
再次反转链表,涵盖所有可能的场景
二叉树上的一些简单问题(不记得具体是什么)
在此之后,我不得不等待将近一周的时间才接到他们的电话,然后我被要求再次接受采访。
第 7 轮(提高杠铃):
从一些行为问题开始,例如为什么选择亚马逊,为什么要离开上一个公司以及当前的工作角色详细信息。
字符串中最长的回文子字符串。面试官对我建议的第一个解决方案很满意,要求我编写相同的代码,并且也对代码深信不疑,尽管我确实犯了一个小错误,后来我意识到了这一点。
最初的意图是问两个这样的问题,但我猜时间限制迫使它只有一个。
非常感谢 geeksforgeeks。这里的亚马逊套装在准备过程中确实有很大帮助。