wordpress怎么添加二级域名,莱芜新站优化,口碑好的做网站,绍兴做微网站题意#xff1a; 求前k个出现频率最高的元素 首先得到一个频率图这是肯定的#xff0c;下一步要考虑建立一个堆#xff0c;堆中保存着前k个频率最大的数字#xff0c;这个怎么做#xff0c;可以用customized cmp来做#xff0c;把数字存进去完事儿。注意这里不用 保存所有…题意 求前k个出现频率最高的元素 首先得到一个频率图这是肯定的下一步要考虑建立一个堆堆中保存着前k个频率最大的数字这个怎么做可以用customized cmp来做把数字存进去完事儿。注意这里不用 保存所有的n个数字只需要k个就好 https://leetcode.com/problems/top-k-frequent-elements/description/
Input: nums [1,1,1,2,2,3], k 2 Output: [1,2]
class Solution {
public:vectorint topKFrequent(vectorint nums, int k) {unordered_mapint, int mp;mapint, int ordered_mp;vectorint ret;for (auto x: nums) {if(mp.count(x)) {mp[x] 1;} else {mp[x] 1;}}auto cmp [mp](int a, int b){return mp[a] mp[b];};priority_queueint, vectorint, decltype(cmp) pq(cmp);for(auto [num,v] : mp) {pq.push(num);if(pq.size() k) {pq.pop();}}while(pq.size()) {ret.push_back(pq.top());pq.pop();}return ret;}
};