347. Top K Frequent Elements
Given a non-empty array of integers, return the k most frequent elements.
For example,
Given [1,1,1,2,2,3]
and k = 2, return [1,2]
.
class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int, int> hash; priority_queue<pair<int, int>> heap; vector<int> ret; for (int num : nums) { hash[num]++; } for (auto it : hash) { heap.push(make_pair(it.second, it.first)); } for (int i = 0; i<k; i++) { ret.push_back(heap.top().second); heap.pop(); } return ret; } };