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

高档网站建设cnzz统计

高档网站建设,cnzz统计,宝塔面板做网站,高校网站设计方案这道题如果不要求时间复杂度的话其实随便怎么做都行,但是这里有个时间复杂度的限制,还是要好好想想怎么做耗时最短。看了一下灵神的题解,我觉得他提到的桶排序方法还是很通俗易懂的。下面讲一下主要的思路。 我们首先定义一个哈希表&#xff…


这道题如果不要求时间复杂度的话其实随便怎么做都行,但是这里有个时间复杂度的限制,还是要好好想想怎么做耗时最短。看了一下灵神的题解,我觉得他提到的桶排序方法还是很通俗易懂的。下面讲一下主要的思路。
我们首先定义一个哈希表,为了保证插入操作的耗时不会过长,这里我们使用unordered_map来实现,我们先遍历数组nums,统计每个元素出现的频次,将键值对存储在hash中,然后我们定义一个二维数组buckets,其中每一个一维数组中存放的元素出现频次相同,我们定义:在nums出现了i次的元素将存入buckets[i]中,我们遍历一遍哈希表,将对应的元素添加到对应的桶子里,最后,我们从后向前遍历buckets,如果遇到长度不为0的一维数组(桶子),则将桶中的所有元素添加到结果result中,并同时将k减去桶中的元素个数,当k <= 0时,说明已经查找完毕,我们直接结束遍历,将result返回即可。

class Solution {
public:vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> hash;  //用于存放数组元素和对应的出现频次vector<vector<int>> buckets(nums.size() + 1);   //其中的每一个一维数组用于存放出现频次相同的元素vector<int> result;  //用于存储结果//统计各个元素的出现频次for(int& i : nums)hash[i]++;//将出现次数相同的元素放到同一个桶中for(auto& i : hash)buckets[i.second].emplace_back(i.first);for(int i = buckets.size() - 1; i > 0; i--){if(!buckets[i].empty()){result.insert(result.end(), buckets[i].begin(), buckets[i].end());k -= buckets[i].size();if(k <= 0) break;  //收集完毕,直接退出循环}}return result;}
};
http://www.dtcms.com/wzjs/445919.html

相关文章:

  • 如何查看网站跳出率免费自助建站
  • 做网站3年广东最新新闻
  • 广州门户网站建设方案品牌营销是什么
  • 栾城网站建设成品短视频app下载有哪些软件
  • 企业建设高端网站的目的重庆森林电影
  • 电子商务网站建设与管理B卷seo排名优化培训
  • 国外色情网站海外销售平台有哪些
  • 钦州市住房和城乡建设局网站智慧软文发稿平台官网
  • 建设移动网站seo论坛站长交流
  • 开发区网站建设的目的企业网站营销优缺点
  • 住房城乡建设部网站主页西安网站维护
  • 网站建设费税收分类抖音关键词排名
  • 网站视频主持人推广
  • 下载好看影视大全极速版河南百度关键词优化排名软件
  • 网站开发与设计教程seo在线排名优化
  • 辽宁网站建站百度官网下载安装免费
  • 国外产品网站杭州seo薪资水平
  • 怎么做独立网站最近社会热点新闻事件
  • 重庆网站备案在那里东莞seo网站排名优化
  • 微信认证 网站北京网络排名优化
  • 网站建站基础3d建模培训学校哪家好
  • 禹州做网站bz3399营销推广投放平台
  • 湖南网站推广seo优化技巧有哪些
  • 360做企业网站多少钱黑帽seo寄生虫
  • dede的网站地图要怎么做网络推广需要什么
  • 做美工一般用到的素材网站网站收录登录入口
  • 做网上招聘哪个网站好智慧软文
  • 网站建设服务价格表查关键词热度的网站
  • 有什么网站可以做团购搜索引擎优化效果
  • 自己做网站前期困难吗好口碑关键词优化地址