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].

Note:

  • You may assume k is always valid, 1 ≤ k ≤ number of unique elements.
  • Your algorithm's time complexity must be better than O(n log n), where n is the array's size.

很常见的top-k问题,我一开始的想法就是用哈希表来实现。
注意priority_queue的使用,排序是first,所以把second放在first。

class Solution {
public:
    vector topKFrequent(vector& nums, int k) {
        unordered_map map;
        priority_queue> pq;
        vector res;
        int n = nums.size();
        for (int i=0; isecond, iter->first));
        }
        for (int i=0; i

你可能感兴趣的:(Top K Frequent Elements)