作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是一道系统设计题。
假设我们有一个服务可以在听到歌曲时通知我们。让我们设计一个新服务,它能够返回过去 24 小时内听得最多的前 K 首歌曲。假设我们有大约 10 亿首歌曲和大约 2 亿用户。
将您的答案集中在缓存、数据结构和数据库模式的设计上。
跟进:我们如何按流派区分它?例如。如果我想要过去 24 小时内听得最多的前 k 首摇滚歌曲怎么办?
真的很好奇你们会说什么/你们怎么想!不必给出超完美的方案,想法也很棒。
最佳答案
看来你想获得听过的前k首歌曲
您应该考虑 Misra Gries 算法 Misra gries
它保留了 k 个元素的数组及其估计值,对你来说重要的是它保留了流中最频繁的 k 个元素(你的通知歌曲列表)
关于algorithm - 设计一个服务来计算过去 24 小时内听过的前 k 首歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50207691/
我是一名优秀的程序员,十分优秀!