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

刚刚参加完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/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值