一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1134|回复: 4
收起左侧

Amazon新鲜面经~~

[复制链接] |试试Instant~ |关注本帖
M_Jason 发表于 2015-8-29 11:18:33 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 本科 全职@Amazon - 内推 - Onsite |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
Amazon新鲜面经,还是热的哦!这篇在米群上发过了,我以为已经贴到这里了呢,结果今天从新看帖子的时候发现竟然没有,失误失误!!(不过,筒子们不要吝啬,赏点儿大米呗,楼主也是来地里混饭吃的,没有大米吃,就没有力气分享了啊~多谢了!!). 鍥磋鎴戜滑@1point 3 acres
前两周刚刚面完Amazon,也算是求职开始后的正式第一面吧!自我感觉除了第一轮头昏脑涨,连个平时没带脑袋敲代码都应该能敲出来的递归DFS遍历都没一下子写出来,其他的几轮都还行感觉。因为并不是最理想的公司,而且当时有事,时间紧迫,所以并没有刷面经和准备behavioral的问题,全都是临场发挥了。好了,不废话,上题:
1.电面:
由于我是之前搞iOS的,但是平时都是用java来练习的,电面之前也已经说过了要用java,但是电面的时候,出乎意料的,面试官不知道我要用java,因为她也是搞iOS的,敲代码的时候要我用OC,不过经过协商之后还是同意我用java了,毕竟好久没用OC了,已经生疏了,不能在她面前露出破绽啊!问了三十多分钟的iOS基础问题,差点儿把我问哭了,毕竟一点儿没准备,全靠一年前的记忆来答的,不过事后发现答得还行。然后问了一个数据结构问题:数组,set和map之间的区别,以及各自的优劣势,还有各自的适用场景,最后还问我都是什么时候用到这些结构的。紧接着又问了一个巨简单的算法题,我都不相信我是不是听对了:给一个字符串,把里面的空格换成20%,leetcode原题,由于刚开始没说要in-place替换,我就写了个最简单的,然后要求in-place,又几分钟搞定。确认没有bug之后就结束了。虽然刚开始觉得iOS基础知识那部分答得不好,会不会不给onsite啊,不过最后还是给了,哈哈,算是狗屎运了吧!
2.Onsite
总共5轮,我约的时间比较特殊,全都集中在上午了,中间没停,一直从8点40面到下午1点40,每一轮45分钟到一个小时,前一天凌晨左右才到达宾馆,早饭又没吃,到最后眼都快要冒金星了。。。。

  (1) 这一轮是个美国人,问到最后跟我说这就是他现在在解决的问题:有一个树,每一个节点都可以有好多子节点,然后每节点都有一个int型的payload,给一个int型的target,设计一个数据结构,然后写一个递归的函数找到那个含有这targetnode。(我用的是N叉树的递归DFS.鐣欏璁哄潧-涓浜-涓夊垎鍦
  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,不过目前为止算法和设计方面已经准备完毕,只是渴求机会啊,多谢了!!!!!


评分

5

查看全部评分

e6175423 发表于 2016-1-18 19:26:07 | 显示全部楼层
楼主,这题-google 1point3acres
Followup: 如果有一个表,表有好多属性,实现一种数据结构,然后再实现一个api,这个api返回的是一个collection,这个collection中所有重复的东西只出现一次。例如:可能会有一个product,它在不同时期有不同的image,有不同的price,但是描述是相同的,名字也是相同的,在返回的collection中只能出现一个product的名字,一个product的描述,但是需要出现所有不同的price。
不理解…… 麻烦说详细一点行么
回复 支持 反对

使用道具 举报

lchen77 发表于 2016-1-20 10:53:32 | 显示全部楼层
感谢楼主分享,想请问楼主:
根据这个树是更宽还是更深,这样也就导致了要是再不同的树的形态下使用不同的搜索方式? 那么如果树更宽,是DFS好些,还是BFS好些,如果树更深呢?如何分享这两种情况下,DFS和BFS的优缺点?
谢谢楼主,祝楼主拿到心仪的offer
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-9 02:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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