Re:LINQ Ruined My Favorite Interview Question
by navinp1912 on Friday July 12, 2013 @12:11AM
(#6030874)
[ Parent
| on HN ]
Not bad. I think it would be a little simpler and faster with:
while (cin >> s) M[s]++;
for (map<string,int>::iterator i = M.begin(); i != M.end(); i++) {
S.insert(make_pair(i->second, i->first));
}
But maybe there's a downside to that approach that isn't obvious to me?
Re:LINQ Ruined My Favorite Interview Question
by navinp1912 on Friday July 12, 2013 @07:40AM
(#6032057)
If you move what while (topK--) into the map loop , it becomes an online code for topK whereas what you wrote is an offline . If you want offline then pushing it into a priority_queue and then popping it out would be much faster.