LeetCode 347. Top K Frequent Elements
来源:互联网 发布:加油卡办卡通知 编辑:程序博客网 时间:2024/06/04 19:27
/*****************************************************************************
*
* 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.
*
*****************************************************************************/
1.分析,首先此题应该用哈希表存储数字,频率
unordered_map
#include <iostream> #include <queue> using namespace std; int main() { priority_queue<int, vector<int>, less<int> >q;//使用priority_queue<int> q1;一样 for (int i = 0;i<10;i++) q.push(i); while (!q.empty()) { cout << q.top() << endl; q.pop(); } return 0; }// 输出9-0
因此根据上述分析可得
#include <iostream>#include<queue>#include<map>#include <unordered_map>#include <vector>#include <set>using namespace std; vector<int> topKFrequent(vector<int>& nums, int k) { vector<int>result; //一,统计处频次 unordered_map<int, int> mapping; for (auto number : nums) //基于范围内的for循环 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; } //测试 int main() { vector<int>nums = { 1,1,1,2,2,3 }; vector<int>result; result = topKFrequent(nums, 2); for (auto c : result) cout << c << endl; }
参考博文http://blog.csdn.net/EbowTang/article/details/51317106
1 0
- LeetCode #347. Top K Frequent Elements
- [leetcode] 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- <LeetCode OJ> 347. Top K Frequent Elements
- LeetCode 347. Top K Frequent Elements
- Leetcode 347. Top K Frequent Elements
- LeetCode Everyday: 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
- 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-java-347. Top K Frequent Elements
- spring mvc 条件查询导出excel
- Git搭建
- mysql乐观锁总结和实践
- HBase table Get Data 获取数据
- Java获取本机公网ip
- LeetCode 347. Top K Frequent Elements
- WTL 通过IWebBrowser2接口使WebBrowser控件在自己的窗口打开网页
- JSON 入门指南
- 通过路径获取视频 缩略图
- vim编辑器的使用
- linux下创建多线程执行
- iphone——日期处理
- C# Console类
- 关于img ,你必须注意的