当前位置: 首页 > 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.tj-hxxt.cn/news/129160.html

相关文章:

  • 朔州市政府门户网站郑州网站优化软件
  • 免费地方门户网站源码不能搜的超级恶心的关键词
  • 企业网站怎么做的高大上长沙互联网网站建设
  • 重庆忠县网站建设公司电话郑州今日头条
  • 中文网站什么意思长沙互联网网站建设
  • 佛山住房和城乡建设厅网站重庆seo俱乐部
  • 做网站抽奖系统友情链接举例
  • 广西优化网站推广专员是做什么的
  • 贵阳网站开发哪家好站长统计软件
  • 电商网站设计 页面转化率免费大数据查询平台
  • web程序员自己做网站网页分析报告案例
  • 公安机关网站规范化建设应用网页搜索引擎大全
  • 建网站需要什么程序平台推广方案模板
  • app 网站可以做的免费推广营销型网站定制
  • h5在哪个网站上做月饼营销软文
  • 用织梦做网站有什么公司会要常州网站建设优化
  • wordpress知更鸟 破解关键词优化推广公司排名
  • 企查查 天眼查优化大师绿色版
  • 学做网站 书公关服务
  • Java做新闻网站网站的开发流程
  • 如何做阿里巴巴国际网站北京已感染上千万人
  • 网站后台可视化编辑精准营销策略都有哪些
  • 2003建立虚拟网站网络营销专业介绍
  • 哪些网站可以做平面设计哪里可以学网络运营和推广
  • 网站建设 广州网站建设专业公司seo公司重庆
  • 网站内链建设网络媒体广告代理
  • 龙湾区网站制作公司如何开一个自己的网站
  • 小红书推广网站我要登录百度
  • 男女生做恶心的网站山东今日热搜
  • WordPress文章过滤唐山网站建设方案优化