十亿条淘宝购买记录,怎么获取出现最多的前十个?

java岗,前几天看面经,面试官问了这个问题,想看看大佬是怎么解决的#Java#
全部评论
首先明确问题,最多是什么最多?物品购买次数最多还是用户购买次数最多?然后估算每条记录占用空间多大,确定要不要分布存储。分布存储就分治,反之就寻找动态的数据结构比如堆。
点赞 回复 分享
发布于 2019-06-10 08:27
取模分成1W个小数据,然后保存在map中,做一个最大堆,每个堆取前十的数据,然后最后做一个堆,取前十?
点赞 回复 分享
发布于 2019-06-10 08:11
做一个size为10的最小堆,然后判断堆顶元素和下一个元素,堆顶小就pop然后push新数
点赞 回复 分享
发布于 2019-06-11 08:45
可以用大数据框架吗,3行代码
点赞 回复 分享
发布于 2019-06-10 08:56

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
Java大菜狗:纯纯招黑奴,一天还不到两百那么多要求,还不迟到早退,以为啥啊,给一点工资做一堆活,还以不拖欠员工工资为荣,这是什么值得骄傲的事情吗,纯纯***公司
点赞 评论 收藏
分享
评论
2
19
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务