600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 堆面试题:一个访问量非常大的新闻网站 将点击量排名 Top 10 的新闻摘要 滚动显

堆面试题:一个访问量非常大的新闻网站 将点击量排名 Top 10 的新闻摘要 滚动显

时间:2021-06-24 01:09:19

相关推荐

堆面试题:一个访问量非常大的新闻网站 将点击量排名 Top 10 的新闻摘要 滚动显

我的思路是这样子,

1,对每篇新闻摘要计算一个hashcode,并建立摘要与hashcode的关联关系,使用map存储,以hashCode为key,新闻摘要为值

2,按每小时一个文件的方式记录下被点击的摘要的hashCode

3,当一个小时结果后,上一个小时的文件被关闭,开始计算上一个小时的点击top10

4,将hashcode分片到多个文件中,通过对hashCode取模运算,即可将相同的hashCode分片到相同的文件中

5,针对每个文件取top10的hashCode,使用Map<hashCode,int>的方式,统计出所有的摘要点击次数,然后再使用小顶堆(大小为10)计算top10,

6,再针对所有分片计算一个总的top10,最后合并的逻辑也是使用小顶堆,计算top10

7,如果仅展示前一个小时的top10,计算结束

8,如果需要展示全天,需要与上一次的计算按hashCode进行合并,然后在这合并的数据中取top10

9,在展示时,将计算得到的top10的hashcode,转化为新闻摘要显示即可

堆面试题:一个访问量非常大的新闻网站 将点击量排名 Top 10 的新闻摘要 滚动显示在网站首页 banner 上 并且每隔 1 小时更新一次。如果你是负责开发这个功能的工程师 你会如何来实现呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。