Недавно я наткнулся на этот вопрос интервью:
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
в куче, и если да, то извлеките-min и вставьте в кучу.
Есть ли лучшие способы сделать это?