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; } };

 

posted on 2017-03-05 03:55  123_123  阅读(76)  评论(0编辑  收藏  举报