当前位置: 首页 > news >正文

建设企业网站网站崩溃网站建设分金手指科捷13

建设企业网站网站崩溃,网站建设分金手指科捷13,建筑装饰公司排名,网站建设专业输入法题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 分析:首先我们需要计算数组中元素出现的频率,前几篇文章讲解了哈希表的应用,所以这里我们很容易想到用…

题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

分析:首先我们需要计算数组中元素出现的频率,前几篇文章讲解了哈希表的应用,所以这里我们很容易想到用unordered_map数组存放元素(key)及其出现频率(value)。然后我们需要根据value值进行排序,map的常用排序是根据key值进行的排序。所以我们根据value进行排序,需要将map转换为vector结构,然后对整个数组进行排序。但是如果我们采用优先级队列可以只维护k个有序的序列

然后我们要考虑使用大顶堆还是小顶堆。因为我们只想要维护k个键值对,所以对于多余的键值对要用pop弹出,如果使用大顶堆就可能把出现频率高的元素弹出,而使用小顶堆将出现频率小的弹出刚好会剩下出现频率高的元素。最后由于小顶堆小的在前,所以在放入vector<int> result数组时要逆序放。

注:优先级队列如果不指定第三个参数,默认是大顶堆,所以我们可以采用仿函数(函数对象)来实现小顶堆定义。
具体代码:

class Solution {
public:class Mycomparison {public:bool operator() (const pair<int, int>& lhs, const pair<int, int>& rhs) {return lhs.second > rhs.second;}};vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> map;for(int i = 0; i < nums.size(); i++) {map[nums[i]]++;}priority_queue<pair<int, int>, vector<pair<int, int>>, Mycomparison> pri_que;for(unordered_map<int, int>::iterator it = map.begin(); it != map.end(); it++) {pri_que.push(*it);if(pri_que.size() > k) {pri_que.pop();}}vector<int> result(k);for(int i = k - 1; i >= 0; i--) {result[i] = pri_que.top().first;pri_que.pop();}return result;}
};

http://www.yayakq.cn/news/592524/

相关文章:

  • 网站关键词 价格生成在线视频直播网站建设
  • 湖北智能建站系统价格码支付wordpress前端
  • 信用门户网站建设哪些网站是php
  • 服装效果图网站新手学做网站pdf
  • 淘宝网站用什么语言做的wordpress访客注册
  • 涂料网站建设关于动物自己做的网站
  • 网站顶部图片素材宁波市奉化区建设局网站
  • 我做网站推广wordpress没有icp
  • 做网站需要会什么条件漯河优惠网站建设价格
  • 龙岗做棋牌网站建设鄂州seo多少钱
  • c 网站建设教程视频技术支持 东莞网站建设洋酒回收
  • 网站背景设计廊坊seo整站优化软件
  • 站群网站源码装修案例朋友圈文案
  • 网站详情页艺术字怎么做的可以做动效的网站
  • 做网站月收入多少线上投票链接怎么做
  • 做二手车有哪些网站有哪些手续百度浏览器官方网站
  • 莱芜网站优化怎么做wordpress 图片特效
  • 茂名做网站公司镇江手机网站制作
  • 做网站卖赚钱吗孝感网
  • 建设网站的相关技术南头英文网站建设
  • 没有网站域名备案公司需要网站 该怎么做
  • 手机上网站用建设工具百度网页怎么做
  • 简洁企业网站模板做门户网站私活多少钱
  • 佛山网站推广经理超链接到网站怎么做
  • 移动网站开发百度百科备案中又需要建设网站
  • 企业网站建设方案大全网站建设的背景有哪些
  • 大庆建设银行网站首页app网站有哪些
  • 网站上的美工图片要怎么做wordpress邮件设置
  • 营销型网站建设企业营销型网站平台附近卖建筑模板市场
  • 手机网站主机杨凌做网站的公司