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

网站微信建设运维培训班在百度如何发布作品

网站微信建设运维培训班,在百度如何发布作品,广州网络引流公司,建设招标项目常挂网站有哪些优先队列哈希集合反向思维(或自定义排序) 模拟,请直接看算法思路: 两个哈希集合S1和S2, S1存正面词汇,S2存负面词汇;一个优先队列pq,pq存{score, id}键值对,即学生分数-学生id。 算法流程: 初…
优先队列+哈希集合+反向思维(或自定义排序)

模拟,请直接看算法思路:
两个哈希集合S1S2, S1存正面词汇,S2存负面词汇;一个优先队列pqpq存{score, id}键值对,即学生分数-学生id。

算法流程:

  1. 初始化S1S2
  2. 遍历reportreport里存的是句子,每个句子report[i]对应一个学生student_id[i]的评价,抠出句子的每个单词report[i][j],将单词分数(对照哈希集合)加给学生。上述流程确定了学生student_id[i]的分数,将学生分数加入优先队列。
  3. 记录前k个学生id,存入答案数组ansans即为所求。

请注意:优先队列默认大根堆,按fisrt成员从大到小排序;在first成员相等时,按照second成员从大到小排序。score是first成员,id是second成员,出现矛盾:当score相同时,题目要求id从小到大排序。解决方法:1. 将score变为负数,或将id变为负数。2. 自定义排序规则(优先队列);本题解将score变为负数,解决了矛盾。

class Solution {
public:vector<int> topStudents(vector<string>& positive_feedback, vector<string>& negative_feedback, vector<string>& report, vector<int>& student_id, int k) {// 哈希集合unordered_set<string> S1, S2;vector<int> ans = vector<int> (k, 0); // 保存答案的ans顺序priority_queue <pair<int, int>, vector<pair<int,int>>> pq; // 存{score, id}键值对。for (int i = 0; i < positive_feedback.size(); i ++) {S1.insert(positive_feedback[i]);}for (int i = 0; i < negative_feedback.size(); i ++) {S2.insert(negative_feedback[i]);}for (int i = 0; i < report.size(); i ++) {int j = 0; // 遍历report[i];int score = 0, id = student_id[i];while (j < report[i].size()) {string t = "";while (j < report[i].size() && report[i][j] != ' ') {t += report[i][j ++];}j ++;if (S1.count(t)) score -= 3; // 得分,数值变小else if (S2.count(t)) score ++; // 扣分,数值变大}pq.push({score, id});if (pq.size() > k) pq.pop();}int i = k - 1;while (i >= 0) { // while (pq.size() && i >= 0) {int id = pq.top().second;pq.pop();ans[i --] = id;}return ans;}
};

时间复杂度 O ( n l o g k ) O(nlogk) O(nlogk) : n n n r e p o r t report report的长度, k k k 是常数(奖励最顶尖的前k名学生),优先队列内部最多维护 k + 1 k+1 k+1名学生,一共 n n n名学生进一次优先队列,最多 n n n名学生出一次优先队列,时间复杂度 O ( n l o g k ) O(nlogk) O(nlogk)
空间复杂度 O ( n ) O(n) O(n) : 两个哈希集合/ans数组的空间复杂度 O ( n ) O(n) O(n),优先队列的最坏空间复杂度 O ( k ) O(k) O(k),总体空间复杂度 O ( n ) O(n) O(n)

AC

ac

致语
  • 理解思路很重要。
  • 请读者放心留言,可以是疑惑的点,或者感谢/夸奖也可以!!墨染看到会回复的。
http://www.ds6.com.cn/news/102306.html

相关文章:

  • 做企业网站选百度云还是阿里云新闻最新头条10条
  • 用php做京东网站页面沈阳网站优化
  • 深圳网站建设服务哪一个便宜手机百度云电脑版入口
  • 注册一个个人网站全能优化大师
  • 新网站不被收录的原因seo搜索引擎优化实训报告
  • 网站的类型主要有营销方案推广
  • 站长推荐黄色长沙网络营销公司排名
  • 平面设计公司广告语seo 首页
  • wordpress调用微云视频宁波seo网络推广外包报价
  • 佛山高端网站建设信息推广平台
  • 济南百度竞价代运营seo查询外链
  • 马鞍山网站建设公司排名百度网址链接
  • 珠海企业网站建设社群营销的十大案例
  • bootstrap做的网站微信广告推广如何收费
  • 小县城做网站建立一个企业网站需要多少钱
  • 惠州做企业网站的石家庄网站建设
  • 做t-shirt素材网站百度seo招聘
  • 怎么用dw做响应式网站百度推广开户联系方式
  • 建设网站对比方案营销平台建设
  • 重庆石柱网站设计公司企业做推广有用吗
  • 做网站有什么软件郑州网站优化推广
  • wordpress用nginxseo这个行业怎么样
  • 抖音小程序平台站长工具seo查询
  • 网站培训制度国内好用的搜索引擎
  • 网站怎么做不违法吗百度一下你就知道主页
  • asp网站用ftp怎么替换图片如何快速搭建一个网站
  • 百度云做网站网络营销师资格证报名
  • 哈尔滨优化网站排名百度推广平台登录
  • 昆明有哪些帮忙做网站的公司做个网页需要多少钱?
  • 怎样免费建个人网站百度手机助手安卓版下载