bra*_*ter 5 language-agnostic twitter
这是一个有人问我的面试问题,我的答案并不是很好.我想知道是否有人可以帮我理解解决方案:
"你有十亿条推文流入.你将如何找出前10个主题标签?"
谢谢
创建一个地图,使用主题标签作为键,将计数器作为值.
增加收到的每条推文中每个标签的计数器.
检查计数器的值以找到前10名.
您对问题的措辞不包括任何会阻止这种直接解决方案的限制.在面试的情况下,我会要求澄清问题以引出这些限制.
在诸如"它必须以线性时间运行"的约束下,以及"它必须使用恒定量的内存",会出现更多有趣的答案.
我不确定是否存在针对该问题的常量内存解决方案,但我知道一个相关(通常更有用)的问题:识别构成给定部分结果的元素.我把它作为一个类似问题的答案.
(我说,"更有用",因为如果给定项目的总分数低于阈值,则它更可能是真实的"十大"材料.)