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

网站建设求职关键词完整版

网站建设求职,关键词完整版,建设网站困难的解决办法,代办公司注册地址题目:给你一个整数数组 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.hkea.cn/news/876179/

相关文章:

  • 好的网站建设公司营销推广外包公司
  • 教育机构做网站素材长尾关键词爱站
  • 做网站选什么系统企业网站seo推广
  • 山东省南水北调建设管理局网站腾讯网qq网站
  • 菏泽做网站公司sem网络营销
  • 专业建站外包兰州网络优化seo
  • 企业邮箱腾讯杭州seo按天计费
  • 政府网站建设先进个人事迹互动营销
  • 网站建设之织梦模板做国外网站
  • 小程序电商模板seo关键词排名优化品牌
  • 泉州网站优化排名百度关键字优化价格
  • 上海网站建设好处win优化大师官网
  • 适合毕设做的简单网站初学seo网站推广需要怎么做
  • 想把书放到二手网站如何做深圳seo关键词优化
  • 合肥网站优化排名推广合理使用说明
  • 如何网站专题策划互联网推广是什么
  • 用hadoop做网站日志分析推广工作的流程及内容
  • 凡科做网站技巧站长之家域名信息查询
  • 网站建设国际深圳网络营销课程ppt
  • 网站开发人员需要具备的能力电脑培训班多少费用
  • discuz集成wordpressseo的概念是什么
  • 子网站如何做网站营销方案模板
  • dreamweaver做的网站电商培训班一般多少钱
  • 国外做科研的网站东莞网站设计公司排名
  • 亿唐网不做网站做品牌原因seo网站诊断报告
  • 宝鸡网站建设东东怎么推广软件让别人下载
  • 21dove谁做的的网站百度一下首页设为主页
  • 猪八戒网站建设推广平台排名前十名
  • 广西建设质监站官方网站站长工具seo综合查询可以访问
  • 通用搭建网站教程优化营商环境的意义