Skip to content

Instantly share code, notes, and snippets.

@jianminchen
Created July 30, 2016 00:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jianminchen/c3d49c11c090b91c94ae7b05bdc11786 to your computer and use it in GitHub Desktop.
Save jianminchen/c3d49c11c090b91c94ae7b05bdc11786 to your computer and use it in GitHub Desktop.
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
unordered_map<int,int> m;
for(int num : nums) {
m[num]++;
}
vector<vector<int>> buckets(nums.size()+1);
for(auto p : m) {
buckets[p.second].push_back(p.first); // second:frequency, first:num
}
vector<int> ans;
for(int i = buckets.size()-1; i >= 0 && ans.size() < k; --i) {
for(int num : buckets[i]) {
ans.push_back(num);
if(ans.size() == k)
break; // this can only jump out the inner loop
}
}
return ans;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment