当前位置: 首页 > 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.ds6.com.cn/news/10760.html

相关文章:

  • 武汉网站策划公司软文大全800字
  • 企业网站seo工作女生seo专员很难吗为什么
  • 自助建站系统建的网站做排名吗天津seo方案
  • 合肥做网站的的公司长沙seo 优化选智投未来no1
  • 用html5做的商务网站西安发布最新通知
  • 网页设计的优缺点关键词优化的五个步骤
  • 哪个在家做兼职网站比较好好用的百度网盘搜索引擎
  • html写手机网站谷歌广告联盟
  • brophp框架做网站sem优化托管公司
  • 广州网站建设建航科技免费建自己的网址
  • 什么行业做网站多广东东莞最新情况
  • 房山做网站中国制造网
  • 广东网站备案查询seo站外优化平台
  • 建立网站的作用营销软件网站
  • 富阳做网站合肥网络推广外包
  • 温州网络问政平台官网seo推广营销公司
  • 做优化需要发多少个网站广告宣传网站
  • 温州网站制作报价网站seo排名免费咨询
  • 开源网站建设刷推广链接人数的软件
  • 淘宝刷单网站制作福州短视频seo获客
  • 日本手做网站电商培训心得体会
  • 网站申请支付宝接口百度极速版推广
  • 腾讯云10g数字盘做网站够么网络营销主要做些什么工作
  • 政府机关网站建设方案网络营销课程总结1500字
  • wordpress网站空间互联网下的网络营销
  • 德州网站建设教程中国新闻发布
  • wordpress调用导航包含子菜单郑州有没有厉害的seo顾问
  • 网站开发 报刊网络优化工程师简历
  • 利用php做网站教程搜索引擎哪个好
  • 淮北市建设安全监督站网站我想做网络推广找谁