这次面试是针对亚马逊物流管理部门的SDE-2职位。我在 naukari.com 上申请了这份工作。
第1轮:
在 Hackerearth 上有一个在线编码测试。问了两个问题。我现在不记得他们了。
第二轮:
两周后,他们安排了电话会议。
问题1:给定’0’和’1’的矩阵,找出最大的冰岛(即’1’的面积)
问题 2. 为插入、删除、搜索和 getRandom 设计一个具有恒定时间的数据结构。
我已经为两者提供了解决方案。
第三轮:
这是在海得拉巴的现场采访。
首先他问了我过去的项目和面临的挑战。然后他问我是否在当前系统之上设计了任何东西。
接下来给出了一个技术问题;
给定一个整数数组和一个窗口大小“k”,找到数组中每个可能窗口的第一个负数。
我首先给了他一个两个队列的方法(不是最佳的),他告诉他在纸上编码。我写完代码后,他要求进一步优化。最后经过几次迭代,我给了他一个最佳的两指针方法。
我的建议是;不要急于向面试官展示您的解决方案,首先尝试提出最佳解决方案。对于 SDE-2 职位,他们首先期望您提供最佳解决方案。
第 4 轮:
这是所有与项目和 HLD 相关的回合。
有两个面试官。第一个自我介绍并讲述了他们的团队在亚马逊上的工作。
然后他简要地询问了我在之前公司的角色和我过去做过的项目。然后问我是否做了一些事情,比如添加新功能或建议对客户或经理没有要求的项目进行一些改进。
然后他让我画会议日历系统的HLD。然后讨论了各种问题,比如可扩展性,应该使用什么数据库; SQL-NoSQL、并发等。
所有最好的家伙!