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

网站备案什么注销百度品牌广告多少钱一个月

网站备案什么注销,百度品牌广告多少钱一个月,网站改版换了域名,只做水果的网站前K个高频单词一、题目链接二、题目三、分析四、代码一、题目链接 692.前K个高频单词 二、题目 三、分析 本题目我们利用map统计出次数以后,返回的答案应该按单词出现频率由高到低排序,有一个特殊要求,如果不同的单词有相同出现频率&#…

前K个高频单词

  • 一、题目链接
  • 二、题目
  • 三、分析
  • 四、代码

一、题目链接

692.前K个高频单词

二、题目

在这里插入图片描述

三、分析

本题目我们利用map统计出次数以后,返回的答案应该按单词出现频率由高到低排序,有一个特殊要求,如果不同的单词有相同出现频率,按字典顺序排序。

解法一:用排序找前k个单词,因为map中已经对key单词排序过,也就意味着遍历map时,次数相同的单词,字典序小的在前面,字典序大的在后面。那么我们将数据放到vector中用一个稳定的排序就可以实现上面特殊要求,但是sort底层是快排,是不稳定的,所以我们要用stable_sort,他是稳定的。

涉及到排序的稳定性,稳定性好的排序是:冒泡、插入、归并,保证相等的值的相对顺序不变。

算法库里有一个稳定的排序(底层是归并,用其他的稳定的排序效率太低):

在这里插入图片描述

解法二:不用stable_sort有什么办法解决呢?将map统计出的次数的数据放到vector中排序,或者放到priority_queue中来选出前k个。利用仿函数强行控制次数相等的,字典序小的在前面。

四、代码

解法一:

class Solution {
public:// stable_sort与库里的pair比较行为不符,自定义比较器——定制仿函数struct Compare{bool operator()(const pair<string, int>& kv1, const pair<string, int>& kv2){return kv1.second > kv2.second;}};vector<string> topKFrequent(vector<string>& words, int k) {// 次数map<string, int> countMap;for (auto& e : words){countMap[e]++;}// 排降序 —— map的数据倒过来,字典序排过了vector<pair<string, int>> v(countMap.begin(), countMap.end());// 仿函数控制降序stable_sort(v.begin(), v.end(), Compare());/* LeetCode平台支持打印 *///for (auto& e : v)//{//    cout << e.first << ":" << e.second << endl;//}vector<string> ret;for (int i = 0; i < k; ++i){ret.push_back(v[i].first);}return ret;}
};

解法二:

class Solution {
public:// stable_sort与库里的pair比较行为不符,自定义比较器——定制仿函数struct Compare{bool operator()(const pair<string, int>& kv1, const pair<string, int>& kv2){return kv1.second > kv2.second || (kv1.second == kv2.second && kv1.first < kv2.first);}};vector<string> topKFrequent(vector<string>& words, int k) {// 次数map<string, int> countMap;for (auto& e : words){countMap[e]++;}// 排降序vector<pair<string, int>> v(countMap.begin(), countMap.end());// 仿函数控制降序,仿函数控制次数相等,字典序小的在前面sort(v.begin(), v.end(), Compare());// 取前k个vector<string> ret;for (int i = 0; i < k; ++i){ret.push_back(v[i].first);}return ret;}
};
class Solution {
public:// stable_sort与库里的pair比较行为不符,自定义比较器——定制仿函数struct Compare{bool operator()(const pair<string, int>& kv1, const pair<string, int>& kv2){// 要注意优先级队列底层是反的,大堆要实现小于比较,所以这里次数相等,想要字典序小的在前面要比较字典序大的为真return kv1.second < kv2.second || (kv1.second == kv2.second && kv1.first > kv2.first);}};vector<string> topKFrequent(vector<string>& words, int k) {// 次数map<string, int> countMap;for (auto& e : words){countMap[e]++;}// 将map中的<单词,次数>放到priority_queue中,仿函数控制大堆,次数相同按照字典序规则排序priority_queue<pair<string, int>, vector<pair<string, int>>, Compare> p(countMap.begin(), countMap.end());vector<string> ret;for (int i = 0; i < k; i++){ret.push_back(p.top().first);p.pop();}return ret;}
};
http://www.dtcms.com/wzjs/99808.html

相关文章:

  • 广州力科网站建设公司重庆网站制作公司哪家好
  • 沈阳专业网站建设企业上海优化seo公司
  • 做一个网站难不难恶意点击软件
  • 中小网站建设都有哪些方案广州优化营商环境条例
  • 网站开发与拉新十大推广app平台
  • 如何做繁体字网站百度手游排行榜
  • 房地产十大排名网页优化最为重要的内容是
  • 做网络推广阿里巴巴还是网站好百度官网地址
  • 永嘉网站建设工作室网站快速排名优化报价
  • 帮人负责做网站叫什么工作sem优化软件选哪家
  • 做网站销售这几天你有什么想法美食软文300字
  • 肇庆企业自助建站google搜索引擎官网
  • 佛山网站建设怎么做论坛软文案例
  • 微信小程序代理武汉网站优化公司
  • 桥东企业做网站搜索关键词排名
  • 网站做动态图片大全最大的中文搜索引擎
  • 做网站的财务会涉及到的科目百度查重工具
  • 物联网云平台seo优化首页
  • 网站参考页面设计微信附近人推广引流
  • 宁波网站制作公司比较好的免费网站
  • 公司网站域名如何续费网站建设推广服务
  • 西安政府网站开发公司搜索引擎分类
  • 做网站 图片格式资源网站优化排名软件公司
  • 怎么利用360域名做网站做销售找客户渠道
  • wordpress后台进上海网站营销seo方案
  • 长春市长春网站制作站优化电脑培训班在哪里有最近的
  • 九江哪家网站建设公司好app线下推广怎么做
  • 个人网站赚钱seo中介平台
  • wordpress单位内网做网站普通话手抄报文字内容
  • 专业微信网站建设网站优化推广