我最近遇到了一个面试问题:
Given a continuous twitter feed, design an algorithm to return the 100 most
frequent words used at this minute, this hour and this day.
我正在考虑一个系统,其哈希映射word -> count
链接到当前分钟、小时和天的 3 个最小堆。
每条传入的消息都经过标记、清理,并在哈希映射中更新字数(如果单词已经存在,则在堆中增加键)
如果堆中不存在任何单词(并且堆大小 == 100),请检查它们是否frequency > min value
在堆中,如果是,则提取最小并插入堆中。
有没有更好的方法来做到这一点?