聊聊跟三哥三姐面试和共事的经历

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 2136|回复: 16
收起左侧

2016.2.26 2 PST Amazon 面经

[复制链接] |试试Instant~ |关注本帖
sunmoyun 发表于 2016-2-27 09:45:50 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类General 硕士 实习@Amazon - 网上海投 - 技术电面  | Other | fresh grad应届毕业生

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

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

x
一个native的小哥,做music player的前端,先是问了简历和behavior,没问data structure,然后就是coding
第一题:
设计两个function log()和report(). 1point 3acres 论坛
report()会返回过去60秒里调用log的次数
用了一个queue实现,问了时间复杂度,是O(n)。然后让优化成O(1),不会。。。给了hint也不会。。。就过了。。。
第二题:. more info on 1point3acres
翻转字符串,leetcode原题

然后就是问问题了

在版里看了很多面经,回馈一下。感觉要跪,但还是希望能有奇迹发生。。。. more info on 1point3acres
johnjavabean 发表于 2016-2-27 14:26:44 | 显示全部楼层
第一题记录下倒数第61秒log了多少条么...然后每一分钟更新一下这个previous和currentSum,这样就是o(1)了?
回复 支持 反对

使用道具 举报

 楼主| sunmoyun 发表于 2016-2-27 22:12:26 | 显示全部楼层
johnjavabean 发表于 2016-2-27 14:26
第一题记录下倒数第61秒log了多少条么...然后每一分钟更新一下这个previous和currentSum,这样就是o(1)了?
. 留学申请论坛-一亩三分地
后来想了一下,我觉得要记录一个size是60的array,每秒都要自动更新
回复 支持 反对

使用道具 举报

usa521 发表于 2016-2-28 00:04:20 | 显示全部楼层
sunmoyun 发表于 2016-2-27 22:12
后来想了一下,我觉得要记录一个size是60的array,每秒都要自动更新

谢谢楼主分享面经 求问这个log()也让你实现了么?怎么实现记录60秒的啊为什么用Queue?需要用那些Java里时间的库方法吗。。。
回复 支持 反对

使用道具 举报

 楼主| sunmoyun 发表于 2016-2-28 01:56:46 | 显示全部楼层
usa521 发表于 2016-2-28 00:04
谢谢楼主分享面经  求问这个log()也让你实现了么?怎么实现记录60秒的啊为什么用Queue?需要用 ...

他给了个API获取当前时间戳,queue用来记录每次登陆时间
回复 支持 反对

使用道具 举报

elvisxyu 发表于 2016-2-29 00:48:26 | 显示全部楼层
是面试官要求用queue记录吗?queue并不是适合干这个需求的data structure
回复 支持 反对

使用道具 举报

vesalius 发表于 2016-2-29 01:56:11 | 显示全部楼层
需要把访问log的时间调出来么?不需要的话不用存时间,只存次数就行吧
回复 支持 反对

使用道具 举报

 楼主| sunmoyun 发表于 2016-2-29 23:29:42 | 显示全部楼层
elvisxyu 发表于 2016-2-29 00:48
是面试官要求用queue记录吗?queue并不是适合干这个需求的data structure

啊他没要求,那应该用什么呢
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

johnjavabean 发表于 2016-3-1 02:46:49 | 显示全部楼层
sunmoyun 发表于 2016-2-29 23:29
啊他没要求,那应该用什么呢

没必要用queue,用两个long就行了....一个记录倒数第61秒多少个log,一个记录过去60秒一共多少个,每次log一个新的就更新倒数61秒的值和总的值,这就是o(1)空间了
回复 支持 反对

使用道具 举报

 楼主| sunmoyun 发表于 2016-3-1 05:00:14 | 显示全部楼层
johnjavabean 发表于 2016-3-1 02:46
没必要用queue,用两个long就行了....一个记录倒数第61秒多少个log,一个记录过去60秒一共多少个,每次lo ...

那或许要再写一个每秒更新的方法才能行吧,不然你只记两个次数,十分钟二十分钟之内都不调用log,这两个次数是无效的
回复 支持 反对

使用道具 举报

beforelost 发表于 2016-3-1 05:41:32 | 显示全部楼层
johnjavabean 发表于 2016-3-1 02:46
没必要用queue,用两个long就行了....一个记录倒数第61秒多少个log,一个记录过去60秒一共多少个,每次lo ...

倒数第61秒的访问次数怎么更新呢?过去60秒不是根据调用report的时间往前60秒吗
回复 支持 反对

使用道具 举报

johnjavabean 发表于 2016-3-1 08:45:21 | 显示全部楼层
sunmoyun 发表于 2016-3-1 05:00
那或许要再写一个每秒更新的方法才能行吧,不然你只记两个次数,十分钟二十分钟之内都不调用log,这两个 ...

这个log肯定每分钟调用的吧....不然你用什么数据结构都没用,毕竟数据缺失了...可能是需要一个counter在第一个60秒的时候
回复 支持 反对

使用道具 举报

elvisxyu 发表于 2016-3-1 09:00:51 | 显示全部楼层
最简单的话用map来实现就好了 不过可能大部分new grad都会没听说过
sortmap有寻找floorkey方法 还有keyfrom和keyto, 用来在范围内找值最试用  :)
回复 支持 反对

使用道具 举报

beforelost 发表于 2016-3-1 09:56:22 | 显示全部楼层
elvisxyu 发表于 2016-3-1 09:00.本文原创自1point3acres论坛
最简单的话用map来实现就好了 不过可能大部分new grad都会没听说过. from: 1point3acres
sortmap有寻找floorkey方法 还有keyfro ...

这应该就不是O(1)了吧?
回复 支持 反对

使用道具 举报

elvisxyu 发表于 2016-3-1 11:27:58 | 显示全部楼层
beforelost 发表于 2016-3-1 09:56
这应该就不是O(1)了吧?

. from: 1point3acres 依据是什么呢? 如果不放心可以去看下源码,或者简单google下
回复 支持 反对

使用道具 举报

beforelost 发表于 2016-3-1 12:22:07 | 显示全部楼层
elvisxyu 发表于 2016-3-1 11:27
依据是什么呢? 如果不放心可以去看下源码,或者简单google下
.留学论坛-一亩-三分地
final Entry<K,V> More ...getCeilingEntry(K key) {
387         Entry<K,V> p = root;
388         while (p != null) {. more info on 1point3acres
389             int cmp = compare(key, p.key);
390             if (cmp < 0) {
391                 if (p.left != null)
392                     p = p.left;
393                 else
394                     return p;
395             } else if (cmp > 0) {
396                 if (p.right != null) {
397                     p = p.right;
398                 } else {
399                     Entry<K,V> parent = p.parent;
400                     Entry<K,V> ch = p;
401                     while (parent != null && ch == parent.right) {
402                         ch = parent;
403                         parent = parent.parent;
404                     } 来源一亩.三分地论坛.
405                     return parent;
406                 }
407             } else
408                 return p;
409         }
410         return null;
411     }

.1point3acres网
这是java treemap的源码,这个实现查找是O(logN)的。除非你说的是其他的实现
回复 支持 反对

使用道具 举报

elvisxyu 发表于 2016-3-2 07:26:40 | 显示全部楼层
beforelost 发表于 2016-3-1 12:22
final Entry More ...getCeilingEntry(K key) {
387         Entry p = root;
388         while (p ! ...
. 留学申请论坛-一亩三分地
很高兴和你讨论。
首先,很高兴你去看了部分源码,但我想大部分人应该都知道treemap的时间复杂度。
其次,我并没有提到过用treemap实现。有许多的类都继承了sortmap,并不是只有一个treemap。所以我不太理解你在这里贴treemap代码的用意。

既然你都知道有可能说有其他的实现,你不如通过我说的方法名来搜索。

回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-22 03:21

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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