会议室II

给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间s1,e1,s2,e2]..](si<ei) ,为避免会议冲突,同时要考虑充分

利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。

示例1
输入: [[0,30],[5,10],[15,20]]
输出: 2

假设三个会议分别为ABC

0~30的时间段内开A会,那么这段时间A肯定占用一个会议室

510开B会,也占一个会议室,但是到10点就开完了。然后1520点开C会,又需要一个会议室。

在此期间,A会一直占用着一个会议室

也就是说这三个会议要正常开完,一共需要至少2个会议室

示例2
输入: [[7,10],[2,4]]
输出: 1

用一个会议室轮流开就行,因为两个会的时间没有交叉

思路

大的思路是,我们要找到时间重合的那些会议,重合的个数就是我们至少需要占用的会议室的数量

为此,我们需要将会议起始时间和结束时间取出来,然后遍历起始时间,同时与结束时间进行比较,如果结束时间大于起始时间,那么

#include <vector>
#include <algorithm> class Solution {
public:
int minMeetingRooms(std::vector<std::vector<int>>& intervals) {
vector<int> start(intervals.size());//取出开始和结束时间
vector<int> end(intervals.size());
for(int i = 0; i < intervals.size(); ++i){
start[i] = intervals[i][0];
end[i] = intervals[i][1];
}
int end_index = 0;
for(int i = 0; i < start.size(); ++i){//遍历start数组,比较开始时间和结束时间
if(end[end_index] > start[i]){//显然遍历两个数组不可能使用一个指针,所以还需要一个遍历来遍历end
res++;//结束时间比开始时间长,不管对应的是哪个会议,都需要占用一个会议室,因此计数++
}else{
end_index++;//否则移动end的指针,对比下一组开始时间和结束时间
}
}
return res;
}
};

【会员题】253. 会议室 II的更多相关文章

  1. 乘风破浪:LeetCode真题_040_Combination Sum II

    乘风破浪:LeetCode真题_040_Combination Sum II 一.前言 这次和上次的区别是元素不能重复使用了,这也简单,每一次去掉使用过的元素即可. 二.Combination Sum ...

  2. 【python】Leetcode每日一题-反转链表 II

    [python]Leetcode每日一题-反转链表 II [题目描述] 给你单链表的头节点 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 ...

  3. [LeetCode] 253. Meeting Rooms II 会议室 II

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  4. [leetcode]253. Meeting Rooms II 会议室II

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  5. lintcode 中等题:permutations II 重复数据的全排列

    题目 带重复元素的排列 给出一个具有重复数字的列表,找出列表所有不同的排列. 样例 给出列表 [1,2,2],不同的排列有: [ [1,2,2], [2,1,2], [2,2,1] ] 挑战 使用递归 ...

  6. leetcode第39题--Combination Sum II

    题目: Given a collection of candidate numbers (C) and a target number (T), find all unique combination ...

  7. [Swift]LeetCode253.会议室 II $ Meeting Rooms II

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  8. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

  9. LeetCode算法题-Range Addition II(Java实现)

    这是悦乐书的第271次更新,第285篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第138题(顺位题号是598).给定一个m行n列的新二维数组M,其初始值为0.提供一个二 ...

  10. LeetCode算法题-Reverse String II(Java实现)

    这是悦乐书的第256次更新,第269篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第123题(顺位题号是541).给定一个字符串和一个整数k,你需要反转从字符串开头算起的 ...

随机推荐

  1. reposync与createrepo创建离线yum源的方法

    背景 昨天晚上进行了在线升级银河麒麟V10SP2的audit和mate-indicator的rpm包 今天想了下,如果机器无法上网. 必须得在公司内部搭建一套离线的rpm源进行处理 想了下还是使用re ...

  2. open,os模块的常用函数

    一.open用于读写文件 1.open的基本语法 : open(file,mode,buffering,encoding,errors.........),open中有如下几个参数,一般情况 下我们只 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (187)-- 算法导论14.1 4题

    四.用go语言,写出一个递归过程 OS-KEY-RANK(T,k),以一棵顺序统计树T和一个关键字k作为输入,要求返回 k 在由 T 表示的动态集合中的秩.假设 T 的所有关键字都不相同. 文心一言, ...

  4. vue2-vue3监听子组件的生命周期的两种方式

    1.生命周期 生命周期是指:vue实例从创建到销毁这一系列过程.vue官网生命周期如下图所示: vue的生命周期有多少个 beforeCreate, created, beforeMount, mou ...

  5. 在bat中切换盘符

    在bat代码中如何在不同的盘符中切换?直接输入盘符的名字,前面不要加cd,示例 cd %~dp0 d: cd D:\Python37 e: cd E:\Code\KSFramework c: cd C ...

  6. 安装 Nginx 修改默认端口

    用远程工具连接我们上次购买的机器,这里我要介绍一个知识点,博主使用的工具是 MobaXterm,这个工具有一个多操作的功能,在下图的位置可以开启多操作,然后连接你的服务器机子即可: 首先我们将机子里面 ...

  7. 5.1 内存CRC32完整性检测

    CRC校验技术是用于检测数据传输或存储过程中是否出现了错误的一种方法,校验算法可以通过计算应用与数据的循环冗余校验(CRC)检验值来检测任何数据损坏.通过运用本校验技术我们可以实现对特定内存区域以及磁 ...

  8. 9、数据库学习规划:Oracle - 学习规划系列文章

    甲骨文公司的Oracle数据库是笔者认为的目前市面上性能最强大的数据库.其版本也发展到了现在的12c,提供的功能也更加的强大了.以前笔者使用的是9i,十几年过去了,也才发展到12代,说明Oracle数 ...

  9. Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)

    优秀文章分享:vue中使用vuex(超详细) - 掘金 (juejin.cn) 一.状态管理 1.1.什么是状态管理? 理论上来说,每一个 Vue 组件实例都已经在"管理"它自己的 ...

  10. Leetcode刷题第三天-贪心-双指针

    738:单调递增 链接:738. 单调递增的数字 - 力扣(LeetCode) 嘶~介个介个恶心心,从后往前遍历,前一个数比当前数大,前一个数-1,当前数变为9 需要注意的是,保证每个9后面全是9 1 ...