新鲜出炉,Amazon SDE 面经(电面+Onsite)

2019-04-13 17:36发布

刚刚参加完Amazon的面试,来写一下自己的面试过程。我申请的是SDE-1的职位。面试流程是2轮电面,4轮Onsite. 一开始是电面。

第一轮 电面 1

  1. 翻转字符串 reverse words in a string。
    1. LintCode原题:http://www.lintcode.com/en/problem/reverse-words-in-a-string/
    2. 参考答案:http://www.jiuzhang.com/solutions/reverse-words-in-a-string/
    3. follow-up: 翻转的时候如何处理空格
  2. 划分数组。
    1. LintCode原题:http://www.lintcode.com/zh-cn/problem/partition-array/
    2. 参考答案:http://www.jiuzhang.com/solutions/partition-array/

第二轮 电面2

  1. 链表求和。要求O(n)的时间复杂度。
    1. LintCode原题:http://www.lintcode.com/zh-cn/problem/add-two-numbers/
    2. 参考答案:http://www.jiuzhang.com/solutions/reverse-words-in-a-string/
  2. Find all ancestors of LCA. 给出两个节点,打印出两个节点的所有公共祖先节点,算法也就是找出最近公共祖先(LCA),然后打印root到LCA的所有节点。
    1. LintCode原题:http://www.lintcode.com/zh-cn/problem/lowest-common-ancestor/
    2. 参考答案:http://www.jiuzhang.com/solutions/lowest-common-ancestor/
    3. follow-up: 问了一些关于堆和宽度优先搜索(heap & BST)的知识点。像是什么时候用宽度优先搜索,这个在《九章算法班》有讲。
电面结束后几天,HR告诉我面试通过了,并安排我去参加Onsite.

第三轮 Onsite 1

面试官先是问了我一些简历上的问题,比如我简历上的项目经验,问的还算比较细。 接着问了1道算法题。
  1. 一道链表求和的题。假定用一个链表表示两个数,其中每个节点仅包含一个数字。假设这两个数的数字顺序排列,请设计一种方法将两个数相加,并将其结果表现为链表的形式。 要求不可以改变链表的顺序

第四轮 Onsite 2

面试官先问了我为什么想来amazon,接着问了我一些以前的实习经验。
然后问了两道算法题。
  1. Find smallest range containing elements from k lists
    1. LintCode 近似题:http://www.lintcode.com/zh-cn/problem/longest-substring-with-at-most-k-distinct-characters/
    2. LintCode 近似题参考答案:http://www.jiuzhang.com/solutions/longest-substring-with-at-most-k-distinct-characters/
  2. 在一个文件中,找出所有的Anagram

第五轮 Onsite 3

这一轮纯粹是写代码。
  1. Ftinding max and 2nd max in an array by minimum times.
  2. 实现一个类似于并查集的数据结构,可以合并一些点的集合,并且查询点所在集合的点个数等等

第六轮 Onsite 4

问了两道算法题,都要求分享时间复杂度了。
  1. 题目不是记得很清楚了。是一道排序的题目。跟Lintcode这道题目有点像:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。
    LintCode 题目地址:http://www.lintcode.com/zh-cn/problem/reverse-pairs/
相似问题的参考答案:http://www.jiuzhangcom/solutions/reverse-pairs/
2. 是一道数据结构的问题。类似于设计一个LRU。
1. LintCode 相似问题:http://www.lintcode.com/zh-cn/problem/lru-cache/
2. LintCode 相似问题的参考答案:http://www.jiuzhang.com/solutions/lru-cache/