SDE-2 的亚马逊面试体验
第1轮:
时间:1小时
- 自我介绍。
- 在我现在的公司中的角色和责任。
- 您如何编写代码(先编写代码然后测试用例或先编写测试用例然后编写代码)。
然后面试官分享了一个谷歌文档,并要求只在该文档上编写代码和逻辑。
- 简单的基于二叉树的问题。
- 第二个问题也是基于二叉树的。编写完整的代码并要求我执行一些给定的测试用例。
- LRU 缓存。再次带有测试用例的完整代码。
- 还有一些时间,所以他让我为第二个问题提供另一种方法。
接到海得拉巴的现场电话。
在所有这些回合中,面试官都会随身携带一台笔记本电脑,并继续写下反馈。
第 2 轮:
基于项目的讨论:
- 自我介绍。
- 解释你当前项目的工作。把它画在黑板上。
- 基于项目的讨论:
- 你有没有在团队中发生过任何冲突。
- 你有没有和你的经理意见相左。
- 您是否曾经提出过您的解决方案并实现了它。
- 您是否曾经提出过您的解决方案但无法实现。
- 你如何覆盖你的代码并确保它经过全面测试。
- 您是否进行了任何更改以使系统更高效。
第三轮:
编码轮
- 自我介绍。你做过什么项目。
- 提出的问题更多是基于竞争性编程的问题。
- 我不完全记得,但这是有无数学生的事情,我必须选择首先给出唯一答案的学生。
- 我提出了一个解决方案。它会正常工作。
- 然后要求进一步优化它。我给出了另一个解决方案,他对解决方案很满意,并要求我为其编写代码。
第四轮:
编码回合:提高标准回合
- 自我介绍。你的回合进展如何。
- 给定一个整数数组和 k 个交换数,创建可能的最大数。
- 你如何编写测试用例。在编写代码之前编写所有测试用例,包括尽可能多的边缘用例。
- 提出了解决方案。再次进一步优化它。
第五轮:
高级系统设计回合
- 自我介绍。
- 设计一家杂货店,它将在后端使用 Kroger 的库存(第三方库存),但在前端,客户只能看到亚马逊。
第六轮:
低级系统设计回合
- 给了我一张纸,上面写了一些代码,让我找出错误。然后让我建议它应该如何写。所有缺少的然后添加它。
- 设计自动售货机。 (状态设计模式)
- 为上述内容编写用例,然后在纸上编写完整的工作代码。