嗨, 极客!希望与大家分享我的面试经历。
在这段大流行期间, 亚马逊的面试都是通过Chime(视频会议和在线会议应用程序)进行虚拟的
第一回合:(在线评估回合)
Q1)字符串的最大化分区, 以使字符串的每个字符都出现在一个子字符串中
Q2)长度为K的子串的计数, 恰好有K – 1个不同的字符–我在lsbin中链接了一个类似的问题。
在本轮在线回合之后, 我接到亚马逊打来电话面试面谈过程的时间差了将近3个星期。
因此要耐心并保持准备。
第二轮:(第一轮技术面试)
这是由两个编码问题组成的编码回合。在进入实际编码之前, 我被要求讨论我的方法并分析时间复杂度。
Q1)在包含另一个字符串的所有字符的字符串中找到最小的窗口–我能够提出O(S + T)解决方案, 其中S和T是字符串的长度
Q2)删除最小括号以使输入字符串有效
第三轮:(第二轮技术面试)
Q1)找到k个最接近给定值的元素-给定数组未排序
我想到排序后的二进制搜索解决方案, 但被要求使用apt数据结构。
后来我用堆解释了我的解决方案。
Q2)鉴于输入字符串2(a3(bc))的输出应为abcbcbcabcbcbc
解决方案:使用栈
第四回合:(招聘经理回合)
我的项目中还有很多问题, 还有后续问题。
我被要求为一副卡片的设计课程, 卡片具有洗牌和移交等功能。
讨论了对二叉树进行序列化和反序列化等等
第五回合:(举手回合)
Q1)泡泡射击:给定颜色矩阵[['r', 'g', 'b'], ['o', 'g', 'g']]和目标数组['g', 'r ']
从目标阵列中取出每个气泡, 并尝试从底视图中吹入矩阵中相同颜色的气泡。
如果能够击中气泡, 则该气泡又会击中相同颜色的相邻气泡(4方向)。
气泡破裂会使斑点透明, 并且可以允许从底部查看内部气泡。
如果一种目标颜色无法击中矩阵, 则游戏结束–应该返回爆破气泡的计数。
我被要求提供优化的解决方案-主要用于检查底视图
我使用散列来跟踪每一列的活动行。每当气泡破裂时, 活动行就是其下方的行。
因此每列的底视图为matrix [active_row [col]] [col]
Q2)立即数组中的下一个较大的元素。
我被要求提供0(N)解决方案–我的方法使用单调堆栈
进行了后续操作-查找立即左较大的元素而没有额外的遍历或额外的空间
我也能回答
在这些之后, 有很多与行为和项目相关的问题。他们之中有一些是
- 1)你从事的具有挑战性的项目是什么? –被要求详细解释实现, 模式讨论等。
- 2)项目总数及其规模。
- 3)你处理过的任何客户票证。
- 4)问到KMP算法和段树.
- 5)解释一下你的截止日期很紧的时候。
- 6)解释一下你提出任何想法或自动化的时间。
结果如下:已选择
面试前:-
我想分享我的准备过程。选择你喜欢的任何编程语言, 并继续在lsbin或类似站点中解决大量问题, 以解决问题。解决问题时, 我的模式是一个一个地覆盖数据结构, 同时了解其最佳/平均/最坏情况下的时间复杂度。在代码中使用STL时, 请确保你清楚其时间复杂度。在将自己的方法提交给其他极客的各种思考过程后, 我常常在讨论板和解决方案面板上花费一些时间, 并学到了很多东西。
面试中:
访调员期望最优化的解决方案, 是对每个问题的适当实现都适当使用适当的数据结构和算法。只要你感到震惊, 面试官都会为你提供帮助。在进入解决方案之前, 应正确理解问题, 并避免通过对问题陈述的任何假设, 尽可能多地询问访调员以使问题清晰明了。考虑所有可能的边缘/拐角情况。与面试官讨论你的解决方案, 并说明你要处理的案例。最好通过示例输入粗略介绍一下你的方法。
祝一切顺利 !
更多面试和工作相关内容请参考:lsbin - IT开发技术:https://www.lsbin.com/
参考面试题相关内容: