传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 3031|回复: 11
收起左侧

Amazon 店面

[复制链接] |试试Instant~ |关注本帖
vince6 发表于 2016-9-14 08:02:48 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 本科 全职@Amazon - Other - 技术电面 |Fail在职跳槽

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

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

x
店面    implement 2 functions

1.   viod play (String band_name, String song_name);

2.   String topSong(String band_name);

自己定义数据结构  
俺答的不好 已跪
.鏈枃鍘熷垱鑷1point3acres璁哄潧

评分

1

查看全部评分

超分 发表于 2016-9-20 15:43:12 | 显示全部楼层
请问楼主这是一道OOD吗?判定top的依据是什么啊?谢谢!
回复 支持 反对

使用道具 举报

 楼主| vince6 发表于 2016-9-21 13:59:42 | 显示全部楼层
top 就是次数最多阿
回复 支持 反对

使用道具 举报

uhey 发表于 2016-9-21 14:11:57 | 显示全部楼层
能不能请楼主细说一下题?
回复 支持 反对

使用道具 举报

 楼主| vince6 发表于 2016-9-24 13:31:44 | 显示全部楼层
1.   viod play (String band_name, String song_name);
分别统计不同歌曲被不同乐器演奏的次数  
2.   String topSong(String band_name);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
给出乐器名,返回最多播放过最大次数的歌曲名
回复 支持 反对

使用道具 举报

超分 发表于 2016-9-24 14:36:10 | 显示全部楼层
vince6 发表于 2016-9-24 13:31
1.   viod play (String band_name, String song_name);
分别统计不同歌曲被不同乐器演奏的次数  
2.   ...

"最多播放过最大次数的歌曲名" == "播放次数最多的歌曲名"?
回复 支持 反对

使用道具 举报

 楼主| vince6 发表于 2016-9-24 14:53:33 | 显示全部楼层
超分 发表于 2016-9-24 14:36
"最多播放过最大次数的歌曲名" == "播放次数最多的歌曲名"?
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
哈哈  我这英文没学好 中文也不利索了  
回复 支持 反对

使用道具 举报

bbmbill 发表于 2016-9-24 22:24:05 | 显示全部楼层
vince6 发表于 2016-9-24 14:53
. 鍥磋鎴戜滑@1point 3 acres哈哈  我这英文没学好 中文也不利索了

定义一个HashMap<String, HashMap<String, Integer>>的数据结构, 外面的一层HashMap的key是band_name, value是HashMap,里面的一层HashMap的key是song_name, value是播放次数,每次play之后就更新HashMap的播放次数,这样是O(1); 然后topSong的时候遍历HashMap找最大, 这样是O(n),可以么?
回复 支持 反对

使用道具 举报

 楼主| vince6 发表于 2016-9-25 04:58:03 | 显示全部楼层
每次都得遍历HashMap,
回复 支持 反对

使用道具 举报

hcheng81 发表于 2016-9-28 10:57:19 | 显示全部楼层
定义一个class叫song,里面有band名字,歌曲名字和播放次数。

定义一个hashmap,key为band名字,value为song的hashset。

再定义一个hashmap,key为band名字,value为播放最多的song。

每次播放一首歌,到hashmap1里找歌曲,增加播放次数。再到hashmap2里验证,如果播放次数大于当前top song的播放次数,更新hashmap2。

想不出别的什么方法。。。
回复 支持 反对

使用道具 举报

liurudahai 发表于 2016-10-9 09:15:24 | 显示全部楼层
bbmbill 发表于 2016-9-24 22:24
定义一个HashMap的数据结构, 外面的一层HashMap的key是band_name, value是HashMap,里面的一层HashMap的 ...
.1point3acres缃
treemap最后TOP的时候会快一点,但是插入会慢一点,同样的还能用HEAP
回复 支持 反对

使用道具 举报

Lilium 发表于 2016-10-10 22:37:50 | 显示全部楼层
bbmbill 发表于 2016-9-24 22:24
定义一个HashMap的数据结构, 外面的一层HashMap的key是band_name, value是HashMap,里面的一层HashMap的 ...

我和你的想法一样, 但不过最后不用遍历HashMap, 用一个priority queue来维护就好
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-26 08:19

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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