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

本文共 729 字,大约阅读时间需要 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下动态库找不到解决方法!

发表评论

最新留言

关注你微信了!
[***.104.42.241]2023年09月12日 15时39分52秒