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

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

相关推荐

点赞 19 评论
分享
牛客网
牛客企业服务