[LeetCode]347. Top K Frequent Elements
2017-09-06 15:09
316 查看
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].
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.
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.
class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int,int> hash; for(int num : nums){ hash[num]++; } vector<int> result; // pair<first, second>: first->value, second->key // 最大顶堆 priority_queue<pair<int,int>> pq; for(auto it = hash.begin(); it != hash.end(); it++){ pq.push(make_pair(it->second, it->first)); // 如果优先队列长度 > hash的长度-k,则现在的堆顶元素肯定是结果之一 if(pq.size() > hash.size() - k){ result.push_back(pq.top().second); pq.pop(); } } return result; } };
相关文章推荐
- [leetcode]347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements 题解(C++)
- leetcode 347. Top K Frequent Elements
- LeetCode347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements - 频率最高的k个数
- Leetcode 347. Top K Frequent Elements
- [leetCode刷题笔记]347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements 将Hashmap统计次数的Entry,放到List<Entry>里面,对list排序后出现结果
- 【leetcode】347. Top K Frequent Elements
- [leetcode] 347. Top K Frequent Elements
- leetcode题解-347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- LeetCode #347. Top K Frequent Elements
- leetcode 347. Top K Frequent Elements
- [LeetCode]347. Top K Frequent Elements(map排序)
- Leetcode 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements (Medium)
- 【leetcode】347. Top K Frequent Elements
- Leetcode 347. Top K Frequent Elements (Medium) (cpp)