leetcode_c++:哈希:Top K Frequent Elements(347)
来源:互联网 发布:高斯滤波器的算法 编辑:程序博客网 时间:2024/06/05 04:50
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].
算法
O(nlgn)
两个核心操作,
1,利用哈希map统计频次及其对应数字
2,根据频次(及其对应数字)建立最大堆,然后我们总是弹出堆顶就能获取当前最大频次
class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { //一,统计处频次 unordered_map<int,int> mapping; for(int number : nums) mapping[number]++; //二,根据频次压入最大堆中 // pair<first, second>: first is frequency, second is number priority_queue<pair<int,int>> pri_que; //最大堆 for(auto it = mapping.begin(); it != mapping.end(); it++) pri_que.push(make_pair(it->second, it->first)); //三,获取结果 while(result.size() < k){ result.push_back(pri_que.top().second); pri_que.pop(); } return result; }private: vector<int> result;};
0 0
- leetcode_c++:哈希:Top K Frequent Elements(347)
- 347 Top K Frequent Elements
- [347] 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
- C语言文件操作详解
- 2016夏季练习——dp
- stm32 移植rt_thread
- Path Sum II
- 高并发网站更新数据库数据比较高效的方式
- leetcode_c++:哈希:Top K Frequent Elements(347)
- 孕前的第一次身体检查
- SQL版本说明
- orblsam2-理论基础(三)
- uvm_do_with注意事項
- 安装VS2015出现的bug
- java加载properties文件的六种基本方式
- 【Unity Shaders】法线纹理(Normal Mapping)的实现细节
- 十六进制转十进制