找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 8492|回复: 24
收起左侧

[Amazon] Amazon新鲜面经

  [复制链接]

21

主题

2

精华

207

积分

高级会员

Rank: 3Rank: 3

积分
207
发表于 8-11-2015 12:45 AM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 Sophia 于 3-15-2016 10:48 AM 编辑
  ?7 R- L- p9 W! A
( M+ n0 D* |+ M  d( UAmazon新鲜面经,还是热的哦!额,今天第一次来米群网,相见恨晚啊,之前也在others论坛混过,但是基本都是潜水,今天机缘巧合加了Stephen好友,发现他真的是格外的热心,而且米群网也都是干货,下午找人内推还真有人回应了(前几天找过某国内论坛的同胞们内推,不知道是不是因为都太忙了,找了好多基本都没有人回复,好伤心,现在都准备好了,只欠东风了,结果没人送东风。。。。)。所以决定就算耗费了刷题和准备的时间也要来发一份面经,也算是对Stephen和站里的同胞们的支持了!( }4 b2 s+ C- w6 D0 O; P& R9 x
上个月底刚面完亚马逊,也就一周之前,也算是求职开始后的正式第一面吧!自我感觉除了第一轮头昏脑涨,连个平时没带脑袋敲代码都应该能敲出来的递归DFS遍历都没一下子写出来,其他的几轮都还行感觉。因为并不是最理想的公司,而且当时有事,时间紧迫,所以并没有刷面经和准备behavioral的问题,全都是临场发挥了。好了,不废话,上题:' E! }3 p$ h* s) b; `# ~0 V7 [2 r( P
1.电面
( `$ r- ~% N& o; D: }) v由于我是之前搞iOS的,但是平时都是用java来练习的,电面之前也已经说过了要用java,但是电面的时候,出乎意料的,面试官不知道我要用java,因为她也是搞iOS的,敲代码的时候要我用OC,不过经过协商之后还是同意我用java了,毕竟好久没用OC了,已经生疏了,不能在她面前露出破绽啊!问了三十多分钟的iOS基础问题,差点儿把我问哭了,毕竟一点儿没准备,全靠一年前的记忆来答的,不过事后发现答得还行。然后问了一个数据结构问题:数组,set和map之间的区别,以及各自的优劣势,还有各自的适用场景,最后还问我都是什么时候用到这些结构的。紧接着又问了一个巨简单的算法题,我都不相信我是不是听对了:给一个字符串,把里面的空格换成20%,leetcode原题,由于刚开始没说要in-place替换,我就写了个最简单的,然后要求in-place,又几分钟搞定。确认没有bug之后就结束了。虽然刚开始觉得iOS基础知识那部分答得不好,会不会不给onsite啊,不过最后还是给了,哈哈,算是狗屎运了吧!
  k. u3 c# F6 A3 V/ X9 u2.Onsite  A' W) ], j  p
总共5轮,我约的时间比较特殊,全都集中在上午了,中间没停,一直从8点40面到下午1点40,每一轮45分钟到一个小时,前一天凌晨左右才到达宾馆,早饭又没吃,到最后眼都快要冒金星了。。。。/ e/ N% a! Z. _5 h

6 S  f* E( n* k; X' K4 `  (1) 这一轮是个美国人,问到最后跟我说这就是他现在在解决的问题:有一个树,每一个节点都可以有好多子节点,然后每个      节点都有一个int型的payload,给一个int型的target,设计一个数据结构,然后写一个递归的函数找到那个含有这个        targetnode。(我用的是N叉树的递归DFS
+ T2 c* m  w1 N8 ?/ u$ Y
  a) Followup:写一个更高效的递归查找,这里需要自己来问有哪些具体要求,我没有想到该怎么问。给了提示,说是因为每一个节点都含有很多节点,你并不知道这个树是更宽还是更深,这样也就导致了要是再不同的树的形态下使用不同的搜索方式。
  b) Followup: 如果有一个表,表有好多属性,实现一种数据结构,然后再实现一个api,这个api返回的是一个collection,这个collection中所有重复的东西只出现一次。例如:可能会有一个product,它在不同时期有不同的image,有不同的price,但是描述是相同的,名字也是相同的,在返回的collection中只能出现一个product的名字,一个product的描述,但是需要出现所有不同的price。(其实这道题依然可以用上面的那个树来解决,直接每个节点存储很多子节点)但是时间已经快到了,也就没给我机会让我想,他直接给出了答案,哎,写第一个DFS的时候,脑袋估计还在宾馆休息呢吧。。。
(2) 第二轮。。。对不起,那天回来的时候怎么想都想不起来第二轮是什么了,只记着是个烙印面的,但是人很好,跟他聊得很high,还因为他发音不是很标准让我把他名字听成了雷神的名字,然后互相开了半天玩笑才开始的,中间又插科打诨互相聊了好久双方的兴趣爱好,不只是专业的,业余的也是,可能是聊得太high都忘了时间了,后面给的题时间也很短,不过还好我肯定是写出来了的,反正这一轮也不难。
(3)     这一轮又是烙印,不过也一样,人还不错,上来寒暄了一分钟,就直接上题了:在一个已经移动过的有序数组中找到一个数,要用小于O(n)的时间复杂度,这个题直接就是leetcode原题,但是面试的时候搞错了一个if else条件。。。。。。虽然最终还是写出了bug free的代码,但是明显算上前面那遍已经写错的代码,然后擦了从新写,已经超过15分钟了,哎,悲哀!!他问了一下follow up的题,也是原题,就是如果有重复的数怎么办,说了一下思路,并且说有可能复杂度会降低到O(n),他感觉还行就结束了,也没让写代码。
(4)  一个英国小哥,纯behavioral轮,问了好多好多的behavioral的问题,最重要的包括:
  a)自我介绍;
  b)项目中遇到的最大的困难,怎么解决的;
  c)如果遇到跟同事或者manager有分歧的事情,怎么解决的,举个例子;
  d)对组里做出的最大贡献;
  e)如果时间很紧,已经来不及询问上级的意见了,你怎么做?
  f)有没有独自做过重大的决定?
    虽然完全没有准备这些,但是本人比较能扯,所以最后扯得这哥们儿也还挺满意,虽然我说完之后都忘了我到底说了点儿啥,哈哈!
(5)这次是一个美国人,刚工作不到两年,但是人看起来还是挺牛的。看起来不是那种很能侃的,不过还是瞎扯了会儿,然后就开始问问题,这个问题到最后才知道就是他现在工作中正面临的问题的简化版,所以你们也了解了,A家还是挺喜欢用自己工作中的现成问题来考的,所以平时刷题也要多动脑,不要每次见到类似的题就只是回想自己是不是见过,上次怎么写的,毕竟刷题不是目的,训练思维和快速实现的能力才是真正目的:
   有一个warehouse,这个warehouse里面有好多bins,每个bin都不一样,每个bin里面都含有好多products,每个bin里面的product都必须是不同的,不能出现重复的。每个bin都有一个ID,每个product也有一个ID,然后要求设计合适的数据结构来实现这个warehouse类,然后实现增加和删除操作,以及给一个product 的ID返回一个存储有这个product的bin的ID list,这些bin都含有这个product的ID。我给的解决方案,在增加和删除的操作中都可以实现O(1)的时间复杂度,但是在返回ID list的函数中,是O(n)的时间复杂度。
   Followup: 要求实现所有的操作都是O(1)时间复杂度。
OK,大概就是这样,总体感觉不算难,所以有信心的同学就赶紧开始面A家吧!额,对了,最后再发一个个人请求:来到加州已经一周多了,发出内推请求也已经好多了,但是很少有内推人回复,希望有在职的童鞋们帮忙内推一下吧!加州的最好,不是加州的也可以~我是new grad,不过目前为止算法和设计方面已经准备完毕,只是渴求机会啊,多谢了!!!!!
- w& [$ Y& }( i

21

主题

2

精华

207

积分

高级会员

Rank: 3Rank: 3

积分
207
 楼主| 发表于 8-11-2015 12:48 AM | 显示全部楼层
这。。。不对啊,我本来设置的是不限权限的啊,怎么变成20了,版主,我该怎么编辑啊?我希望像我一样的新人们也能看到啊~

781

主题

575

精华

5670

积分

顶级版主

Rank: 9Rank: 9Rank: 9

积分
5670

活跃会员热心会员优秀版主

发表于 8-18-2015 11:37 AM | 显示全部楼层
M_Jason 发表于 8-11-2015 12:48 AM
# \7 y7 ?* V8 L; r) [4 D9 A: f这。。。不对啊,我本来设置的是不限权限的啊,怎么变成20了,版主,我该怎么编辑啊?我希望像我一样的新人 ...

" ]; W+ I9 ]6 e9 |7 A' VSure, we have removed it~~~
我们始终相信IT会持续改造甚至创新传统行业,我们始终全面看好咱们的CS专业!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表