
Amazon VO 1
Coding:CountLengthOfCycle(arr, start_index)
You are given an integer array of size N. Every element of the array is greater than or equal to 0. Starting from arr[start_index], follow each element to the index it points to. Continue to do this until you find a cycle. Return the length of the cycle. If no cycle is found return -1
Behavior question
- 自我介绍
- 请讲述一次您为复杂问题提供简单解决方案的经历,后续问题:为什么这个问题复杂,您是如何找到解决方案的,为什么认为您的解决方案/实施对客户有利?
- 请讲述一次您错过截止日期的经历,后续问题:后果是什么,下一次遇到这种情况您会如何处理?
Amazon VO 2
Coding: 两个数组 a 和 b,寻找所有满足 a[i] – b[j] = a[j] – b[i] 的索引 i 和 j。
Behavior question
- 自我介绍
- 请讲述您最具挑战性的项目,后续问题:为什么认为它复杂,如果下次您处理这类项目/任务,您会采用什么方法,您会做哪些改进?
- 您能描述一次您冒险但失败的经历吗(我不记得后续问题了)
Amazon VO 3
系统设计:
设计一个贷款网站,根据用户的偏好为其寻找贷款,一旦用户点击贷款链接,他们将被重定向到外部网址。
日活跃用户:10万,数据保存5年
重点:API设计,数据库设计(我还提到了使用算法/哈希分片的方式进行数据分片,使用 SHA-1)
后续问题:您将如何处理大量请求?(我回答了负载均衡,轮询算法)
Behavior question
- 自我介绍
- 请讲述一次您与上司意见不合的经历?后续问题:结果如何,您为什么试图说服他,如果下次再遇到这种情况,您会做得更好?
- 请讲述您最自豪的成就
Amazon VO 4
Coding:有一个魔术师试图冻结一棵二叉树,给定一个叶子节点,计算冻结整个二叉树的最短时间。
A
/ \
B C
/ / \
D G H
\ / \
E I J
Behavior question
- 请讲述一次您与同事发生冲突的经历
- 请讲述一次您未能在截止日期前完成任务的经历
有3个行为面试问题,每个都有至少3个后续问题,我不记得全部内容了。
总结
每轮面试中,行为面试部分约占30-35分钟,我几乎没有时间进行第一轮的编码。对于每个行为面试问题,我觉得最好提前准备一些情景,因为有很多后续问题。在每个行为面试回答中都提到了客户体验的重要性并深入探讨。我们在在第四轮编码中给出了暴力解决方案。系统设计部分也充满了需要覆盖的细节,比如负载均衡、数据分片、所需服务、选择的数据库(SQL或NoSQL)、优缺点、资源估计等。
经过我们的强力OA辅助,VO辅助,候选人通过这些面试题的解析和沟通,面试官不仅了解了候选人的编程能力,也看到了我在解决问题过程中清晰的思路和有效的沟通技巧。这些不仅有助于应对Amazon的面试,同时也能提升我们解决实际编程问题的能力。祝大家面试顺利!