Top K Frequent Elements《leetcode》
发布日期:2022-02-21 17:40:30 浏览次数:13 分类:技术文章

本文共 671 字,大约阅读时间需要 2 分钟。

class Solution {public:
vector  topKFrequent(vector & nums, int k) {
int len=nums.size();
vector  res;
unordered_map  tmap;//初始化第二个int值都为0
for(int num:nums)
{
tmap[num]++;
}//这边存的值为 = <值,个数>
  priority_queue ,vector >,less >> p;//priority_queue ,vector >,greater >> p;
   //从小到大排序
//但我这里只有n-k个数需要排序即O(lg(n-k)),遍历n次,那么是O(nlg(n-k))
//默认比较第一个数
for(auto it=tmap.begin();it!=tmap.end();it++)
{
  p.push(make_pair(it->second,it->first));//make_pair/需要插入让其比较次数
if(p.size()>((int)tmap.size()-k))
{
res.push_back(p.top().second);
p.pop();
}
}
return res;
}};//还有种方法是,维持一个最大堆,跟这个情况一样

 

转载地址:https://blog.csdn.net/weixin_40599276/article/details/89004154 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:基于MACA协议(MAC协议)的仿真来学习opnet的一些记录
下一篇:ubantu下动态库找不到解决方法!

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.77.167.74]2022年12月04日 12时19分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章