2020 年 SDE-1(全职推荐)的亚马逊面试体验
嗨极客!想和大家分享一下我的面试经历。
在这个大流行期间,亚马逊的采访都是通过 Chime(视频会议和在线会议应用程序)进行的
第一轮:(在线评估轮)
Q1) 字符串的最大化分区,使得字符串的每个字符出现在一个子字符串中
Q2) 长度为 K 且恰好具有 K 个不同字符的子串的计数——我在 geeksforgeeks 中链接了一个类似的问题。
过了将近 3 周的时间,我才接到亚马逊关于本轮线上面试流程的电话。
所以要有耐心,继续准备。
第 2 轮:(技术面试第 1 轮)
这是一个编码回合,由两个编码问题组成。在开始实际编码之前,我被要求讨论我的方法并分析时间复杂度。
Q1) 在包含另一个字符串的所有字符的字符串中找到最小的窗口 – 我能够提出 O( S + T) 解决方案,其中 S 和 T 是字符串的长度
Q2) 删除最小数量的括号以使输入字符串有效
第三轮:(技术面试第二轮)
Q1) 查找与给定值最接近的 k 个元素——给定数组未排序
排序后我想到了二进制搜索解决方案,但被要求使用 apt 数据结构。
后来我用堆解释了我的解决方案。
Q2)给定输入字符串2(a3(bc)) 输出应该是 abcbcbcabcbcbc
解决方案是使用堆栈
第四轮:(招聘经理轮)
关于我的项目的很多问题以及后续问题。
我被要求为一副牌设计课程,这些课程具有洗牌和移交等功能。
讨论了序列化和反序列化二叉树等等
第 5 轮:(提高标准轮)
Q1) Bubble shooter:给定一个颜色矩阵 [['r','g','b'],['o','g','g']] 和一个目标数组 ['g','r ']
从目标阵列中取出每个气泡,并尝试从底部视图中炸开矩阵中相同颜色的气泡。
如果能够击中一个气泡,则该气泡依次击中相邻的相同颜色的气泡(4 方向)。
爆破气泡使该点透明,并且可以从底视图查看内部气泡。
如果一种目标颜色无法击中矩阵,则游戏结束 - 应返回破裂气泡的计数。
我被要求提供一个优化的解决方案——主要用于检查底部视图
我使用哈希来跟踪每列的活动行。每当泡沫破裂时,活动行就是它下面的行。
所以每列的底视图是 matrix[active_row[col]][col]
Q2) 紧接数组中的下一个较大元素。
我被要求提供 0(N) 解决方案——在我的方法中使用了单调的堆栈
有一个跟进——在没有额外遍历或额外空间的情况下找到 Immediate left large element
我也能回答
在这些之后,有很多与行为和项目相关的问题。他们之中有一些是
1)您从事的具有挑战性的项目是什么? – 要求详细解释实施、模式讨论等。
2) 项目总数和规模。
3) 您处理过的任何客户票证。
4)询问KMP算法和Segment tree。
5)解释一下你有一个紧迫的截止日期的时间。
6) 解释您提出任何想法或自动化的时间。
结果:选择
面试前:-
我想分享一下我的准备过程。选择您喜欢的任何编程语言,并在 geeksforgeeks 或类似网站中不断解决大量问题,以获得解决问题的想法。在解决问题时,我的模式是一一涵盖数据结构,了解它的最佳/平均/最坏情况时间复杂度。当您在代码中使用 STL 时,请确保您清楚它的时间复杂度。我曾经在其他极客的各种思考过程下提交我的方法后,在讨论板和解决方案面板上花费了一些时间,并学到了很多东西。
面试时:-
面试官希望得到最优化的解决方案,并为每个问题正确使用合适的数据结构和算法,并全面实施。每当你受到打击时,面试官会帮助你,只是保持大声思考。在跳入解决方案之前,请正确理解问题并避免对问题陈述的任何假设,通过向面试官询问尽可能多的问题来弄清楚它们。考虑所有可能的边缘/角落情况。与面试官讨论您的解决方案并解释您正在处理的案例。使用示例输入粗略地了解您的方法会很好。
祝一切顺利 !