电话回合:
- 给定一个元素为 1 和 0 的二维矩阵,其中 1 是陆地,0 是水。求岛屿的数目。
- 设计一个支持操作的数据结构:在恒定时间内插入、删除、查找和findAny。
面对面
第1轮:
- 给定一个数组,它可以是以下之一:
不减
不增
增加然后减少
减少然后增加 - 找到枢轴元素。
- 查找整数流中的第一个非重复字符。
- 解释你有紧迫的最后期限的情况。你做了什么来满足最后期限?
解释工作过多而您知道无法按时完成的情况。你当时是怎么处理的?
第二轮:
- 按垂直顺序打印树。
- 到达数组末尾的最少跳转次数。
- 给定具有不同成本的杆,以最小成本的方式组合杆。
- 我们什么时候使用哪种排序?不使用归并排序时的示例。
- 解释堆排序的 heapify函数。然后用代码解释当你从堆中删除一个元素(最大/最小)时会发生什么。
- 你有没有遇到过没有按期完成的情况,但你认为自己已经足够好并且走在正确的轨道上?
- 您是否曾经遇到过不得不努力满足最后期限的情况?你是如何划分/取得工作进展的?
第三轮(招聘经理):
- 二叉树的锯齿形打印。
- 重新排列字符串,使得没有两个相同的字符彼此相邻。
- 客户端调用服务器但得到延迟响应。什么可能是多种原因?你如何改进他们?
第 4 轮(招聘经理):
- 你能解释一下你推/写你的代码而你的经理不同意的情况,但你认为你写的代码是正确的吗?你当时做了什么?
- 你有没有遇到过你说服你的经理做某事的情况?
- 有一个呼叫/请求需要一些额外的时间来回复。为什么会这样?你如何删除它?
- 解释缓存。当缓存已满时会发生什么?实现 LRU 缓存。编写代码。
- 您如何在严格的期限内管理工作?如果你曾经遇到过这样的情况。
- 当您想加入亚马逊时,您有哪些考虑?你对它有什么期望?
- 如果给你一些工作,如何定义和管理它。
- 如果你被分配了一些你根本不知道的任务,你会怎么做?
酒吧提升轮:
- 给定一个整数数组,用它右边的下一个更高的数字替换每个数字。如果一个号码不能被替换,我们就保持原样。
例如列表:5, 2, 1, 4, 6, 7 需要改为6, 4, 4, 6, 7, 7。
讨论了 4 种不同的方法并编写了代码。 - 你为什么想换?
- 为什么是亚马逊?
- 几乎所有轮次都会询问有关当前公司、当前项目、团队规模、您的角色和职责等问题。
亚马逊的所有练习题!