我的解决方案
1)给会议开始的时间排序
2)使用二维数组来模拟会议室的分配情况。其中的每个数组都放置了在这个会议室开会的数组下标
3)从每个数组当中读出一维数组的最后一个数字,表示最后使用这个会议室的会议结束时间。看一下,哪一场会议在本次会议开始前结束。
4)如果没有就另外开辟一个会议室使用

class Solution {public:int minMeetingRooms(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end());vector<vector<int>> index;index.push_back({0});for(int i = 1;i < intervals.size();i++){bool add = false;for(auto& vec: index){int j = vec.back();if(intervals[i][0] >= intervals[j][1]){vec.push_back(i);add = true;break;}}if(!add){index.push_back({i});}}return index.size();}
};

第二种方法:使用优先队列
堆的每个点用来存放每场活动的结束时间,最顶端便是最先结束的活动。
如果最先结束的活动比当前活动的开始时间要早,就用当前的活动去替换;如果最先结束的活动结束的时间比当前活动开始得要晚,就将当前活动的结束时间插入到堆当中。
最后最少使用的会场的数量即为堆的大小。

 priority_queue<int,vector<int>,greater<int>> q;sort(nums.begin(),nums.end());for(auto& i:nums){if(q.empty() || q.top() > i[0]){q.emplace(i[1]);}else {q.pop();q.emplace(i[1]);}}cout <<"最小的会场数为:" << endl;cout << q.size() << endl;

下面都是错误的版本
第一版,没有考虑到这种情况

class Solution {public:int minMeetingRooms(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end());int cnt = 1;for(int i = 0;i < intervals.size()-1;i++){if(intervals[i][0] <= intervals[i+1][0] && intervals[i][1] >= intervals[i+1][1]){cnt++;}}return cnt;}
};

第二版,没有考虑到下图这种情况

class Solution {public:int minMeetingRooms(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end());int cnt = 1;for(int i = 0;i < intervals.size()-1;i++){if(intervals[i][1] <= intervals[i+1][0]){}else  cnt++;}return cnt;}
};

第三版,不知道为啥忽略了这种情况
aaa其实思路是没有错的,写错了一个字母

class Solution {public:int minMeetingRooms(vector<vector<int>>& intervals) {sort(intervals.begin(),intervals.end());vector<vector<int>> index;index.push_back({0});for(int i = 1;i < intervals.size();i++){bool add = false;for(auto& vec: index){int j = vec.back();if(intervals[i][0] >= intervals[j][1]){vec.push_back(j);add = true;break;}}if(!add){index.push_back({i});}}return index.size();}
};

2022-3-30 Leetcode253.会议室II相关推荐

  1. leetcode253. 会议室 II

    给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],...] (si < ei),为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多 ...

  2. LeetCode 会议室 II

    会议室 II 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],-] (si < ei),为避免会议冲突,同时要考虑充分利用会议室资源,请你计算 ...

  3. 2022.4.30—2022.6.22 学习报告

    目录 2022.4.30 2022.5.2 数据流图(Dataflow Graph) Sesssion 构建计算图 2022.5.3 Deep Label Distribution Learning ...

  4. Tue Jun 28 2022 15:30:29 GMT+0800 (中国标准时间) 日期格式化

    1. Tue Jun 28 2022 15:30:29 GMT+0800 (中国标准时间) 转换为 2022-06-28 15:30:29 代码如下 const d = new Date(Tue Ju ...

  5. 2022/5/30 Mybatis-Plus详解

    目录 1.Mybatis-Plus简介 2.特性 3.支持数据库 4.框架结构 5.快速开始 5.1 创建数据库mybatis_plus 5.2 搭建项目 5.2.1 创建Spring Boot工程 ...

  6. 【SRE笔记 2022.9.30 集群知识及Centos基础优化】

    SRE笔记 2022.9.30 集群内服务软件 集群模板机创建 Linux系统优化 用户优化 ssh远程连接效率提升 配置yum源 常用软件安装 安全优化 中文字符集(非必要) 时间同步 提升命令行安 ...

  7. 每日一练 — 2022.01.30

    文章目录 一,买卖股票的最佳时机 II 1,程序简介 注意: 示例 1: 示例 2: 示例 3: 提示: 2,程序代码 3,运行结果 二,分数到小数 1,程序简介 示例 1: 示例 2: 示例 3: ...

  8. LeetCode 253. 会议室 II(贪心+优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],-] (si < ei), 为避免会议冲突,同时 ...

  9. LeetCode-预约会议室II

    一.题目 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],-] (si < ei),请你判断一个人是否能够参加这里面的全部会议. 示例 1: ...

最新文章

  1. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值
  2. aserisk笔记(dahdi工具相关)
  3. eclipse无法运行 ,报错:the selection cannot be launched
  4. 获取mongodb数据变更_支持mysql、MongoDB数据变更订阅/监听分发
  5. 经典逻辑编程题(本文用python实现)
  6. python excel 添加数据_使用pyexcel python在电子表格中添加行数据
  7. Java程序员不可错过的11个IDEA插件
  8. Python+matplotlib响应鼠标滚轮事件调整图形大小
  9. Pandas高级操作
  10. Cuda-convnet配置指南 on Windows8.1+CUDA6.5+VS2013
  11. 计算机科学概论读书报告,计算机科学导论读书笔记01:绪论
  12. linux常用命令大全,入门基础版
  13. MACOS系统安装pip
  14. 文件分配方式-索引分配
  15. 《1024伐木累》-小白篇之丽姐(前篇)-总章节四
  16. Ubuntu18.04安装Adobe flash player
  17. 【杂烩】Tesla M40 24G 在Win11上的双显卡显示实现、改风冷
  18. MNIST手写数字识别之MLP实现
  19. 网页版数据库管理工具安装教程——phpAdmin
  20. DNSPod十问袁志远:智慧园区,被严重低估的To B赛道?

热门文章

  1. cadence中电路图的黑色背景与白色背景的切换
  2. make makefile cmake qmake都是什么,有什么区别?
  3. 管理是什么——浅谈开发经理的管理
  4. android 360加固远离,安卓党小心账户被克隆!360加固保为开发者提供修复建议
  5. 如何进行简单的功能仿制(网页制作)
  6. 富文本编辑:wangEditor使用教程
  7. 支付宝智慧食堂解决方案
  8. STPA安全性分析方法
  9. Redis大key问题与scan命令
  10. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManage