Top K Frequent Elements
来源:互联网 发布:电脑笔记软件 编辑:程序博客网 时间:2024/05/17 01:47
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.
map加最小堆。
需要新定义比较方法。
class Solution { struct cmp { bool operator() (const pair<int,int> &a, const pair<int,int> &b) { return a.second>b.second; } };public: vector<int> topKFrequent(vector<int>& nums, int k) { vector<int> ret; unordered_map<int ,int > Hash; for(int i=0; i<nums.size(); ++i){ Hash[nums[i]]++; } priority_queue<pair<int ,int>,vector<pair<int,int>>,cmp> PQ; for(auto i = Hash.begin(); i != Hash.end(); ++i){ if(PQ.size()!=k){ PQ.push(*i); } else{ if(i->second>PQ.top().second){ PQ.pop(); PQ.push(*i); } } } while(!PQ.empty()){ ret.push_back(PQ.top().first); PQ.pop(); } reverse(ret.begin(),ret.end()); return ret; }};stl库中有partial_sort实质上也是用堆排序完成的。
0 0
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Top K Frequent Elements
- Discuz! X1的目录结构和模板结构
- Git命令家底儿及Git数据通信原理详解
- IOS高级开发~Runtime(一)
- 关于width与padding
- 剑指offer之面试题17合并两个排序的链表
- Top K Frequent Elements
- SQL获取每月最后一天记录
- MathType的这些公式技巧,你绝对没想到!
- 菜刀ASP 复制粘贴文件抓包
- 修改http头实现跨域
- 【已解决】Eclipse的java代码出错:The import org.apache cannot be resolved
- Android项目更改包名
- sql日期格式化
- IOS高级开发~Runtime(二)