我最近接受了亚马逊班加罗尔SDE1职位的采访。 1次在线编码测试, 然后进行5轮F2F现场采访。
在线编码测试(4个问题, 2小时)
从采访街
以下所有问题均具有针对其验证代码的多个测试用例。
1.
用于将浮点十进制数转换为二进制数的代码。如果数字无法转换, 请说明。
2.
给定一个大小为n的整数数组A。给定整数k <n。构造一个数组B, 使得B [i] = min {A [i], A [i + 1], A [i + 2], A [i + 3], …。, A [i + k]比O(nk)更好地解决时间复杂性。提示:使用最小堆
3.
一个特别喜欢的清单。可以有一个循环。检测它并找到列表的大小。
4.
一个单独的链接列表和一个数字" K", 从头开始交换第K个节点, 从末尾交换第K个节点。检查所有边缘情况。
样本输入:1-> 2-> 3-> 4-> 5-> 6-> 7-> 8且K = 3
样本输出:1-> 2-> 6-> 4-> 5-> 3-> 7-> 8
样本输入:1-> 2-> 3-> 4-> 5-> 6-> 7-> 8且K = 10
样本输出:打印错误"列表尺寸较小"。
面对面:第1轮(技术, 1小时):
1.
给定二叉搜索树。在树中找到两个数字, 它们的总和为k。
如果没有这样的元素, 请声明。假设树是平衡的。
期望具有O(logn)空间的O(n)解。使用两个堆栈解决。必须输入代码。
2.
复制带有下一个和随机指针的链表。不允许随时修改给定列表。给定列表仅具有读取权限。
面对面:第2轮(技术, 1小时):
1.
给定一个包含整数的矩阵mxn。找出总和最大的kxk子矩阵。
使用前缀和矩阵求解。
2.
给定n元树。以之字形方式遍历它。必须输入代码。
使用队列和虚拟节点解决了关卡信息。
面对面:第3轮(技术, 1小时20分钟):
1.
给定N个铲斗, 每个铲斗的容量1L从1到N编号。铲斗以如下所示的2D金字塔的形式排列。
1
2 3
4 5 6
7 8 9 10
没有每个桶都搁在2个桶上。我将在顶部的水桶(编号1)中加水, 将水桶完全注满后, 水会溅到左右水桶中。需要编写一个将在第1个水桶中添加x L水后在第n个水桶中返回水的函数。
float getWaterInBucket(float x, int n);
2.
给定一个mxn矩阵。每个条目都是一个房间。包含" L"的房间被锁定。没有人可以进入上锁的房间。带" G"的房间是看守房间。房间与警卫的距离定义为警卫到达该房间所遇到的最小房间数量(警卫最多可以在所有允许的4个方向上移动)。找到离所有警卫人员最远的房间。预期时间为O(mn)。 (提示:BFS)
面对面:第四轮(经理, 1小时20分钟):
1.
说说你自己。
2.
你为什么要辞职?
3.
详细说明当前项目。目的是要了解我是否对所从事的项目和团队有深入的了解(大约30-40分钟的讨论时间)
4.
团队有多大, 你的角色是什么?
5.
我在当前公司工作过的最骄傲的项目。细节。
6.
你是否对自己的工作不满意?
7.
你认为需要在某些方面进行改进的任何实例, 这些实例可能会在技术上和专业上为你提供帮助。任何负面反馈。
8.
在浏览器中输入URL时会发生什么?
9.
给定只有父指针的二叉树。给定指向树中两个节点的指针, 找到LCS(
最小共同祖先
)。正确处理边界案例需要质量代码。
10.
‘面向对象的设计
蛇梯游戏
’。被要求提出课程, 继承和背后的推理。
面对面:第5轮(经理, 1小时10分钟):
1.
说说你自己。它从一个基本的介绍回合开始, 在该回合中, 你将评估你的沟通技巧。
2.
为什么要换工作?
3.
详细说明当前项目。深入的信息。
4.
给定二叉树。判断所有叶子是否处于同一水平。需要适当处理边界案例的代码。
5.
讨论股市如何运作。达到:
设计用于存储各种股票的股价的数据结构。进行设计, 以便可以有效地完成价格的更新(添加新条目)。同样, 应该有效地回答诸如" 2012年11月一个月的股票s1, s2, s3的最高/最低股价等"这样的查询。
四天后, 我被告知我已入选🙂
以下是我用于准备的材料。
1.
极客
2.
职业杯
3.
算法简介(Thomas H. Cormen, Charles E. Leiserson, Ronald L.Rivest和Clifford Stein)
4.
算法设计[Jon Kleinberg, ÉvaTardos]
亚马逊的所有练习题
!