leetcode——347——Top K Frequent Elements

来源:互联网 发布:虚拟主机销售系统源码 编辑:程序博客网 时间:2024/06/05 00:36

Given a non-empty array of integers, return thek 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 logn), where n is the array's size.

class Solution {public:vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> hash;vector<int> result;for (auto val : nums) hash[val]++;    priority_queue<pair<int, int>> que;for (auto val : hash) que.push(make_pair(val.second, val.first)); while (k--)   {     auto val = que.top();result.push_back(val.second);que.pop();   }return result;}};

0 0