leetcode 会议室系列
252. 会议室
给定一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi]
,请你判断一个人是否能够参加这里面的全部会议。
输入:intervals = [[0,30],[5,10],[15,20]]
输出:false
输入:intervals = [[7,10],[2,4]]
输出:true
思路
基于贪心。看看现在这个时间能不能去开会,能则时间置为结束时间。开下个会议时再看看能不能去开会,直到把整个列表的会开完,则返回 true,若中途结束时间大于开会时间则说明这个会议不能参加,则返回 false。
复杂度
时间复杂度:O(NlogN)O(NlogN)O(NlogN),排序最少需要 O(NlogN)O(NlogN)O(NlogN)
空间复杂度:O(1)O(1)O(1)
代码
class Solution {public boolean canAttendMeetings(int[][] a) {Arrays.sort(a, (x, y) -> x[0] == y[0] ? x[1] - y[1] : x[0] - y[0]);int i = 0;for (int[] x : a) {if (i <= x[0]) i = x[1];else return false;}return true;}
}
253. 会议室 II
输入:intervals = [[0,30],[5,10],[15,20]]
输出:2
输入:intervals = [[7,10],[2,4]]
输出:1
思路
贪心策略。开会的时候先看看有没有结束的会议,如果有则复用,如果没有就新开一个会议室。
复杂度
时间复杂度:O(NlogN)O(NlogN)O(NlogN),排序最少需要 O(NlogN)O(NlogN)O(NlogN)
空间复杂度:O(N)O(N)O(N)
代码
class Solution {public int minMeetingRooms(int[][] intervals) {int res = 0, n = intervals.length;int a[] = new int[n];int b[] = new int[n];for (int i = 0; i < n; i++) {a[i] = intervals[i][0];b[i] = intervals[i][1];}Arrays.sort(a);Arrays.sort(b);for (int i = 0, j = 0; i < n; i++) {if (a[i] < b[j]) res++;else j++;}return res;}
}
leetcode 会议室系列相关推荐
- leetcode17. 电话号码的字母组合--每天刷一道leetcode算法系列!
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- 八十一、Python | Leetcode 二叉树系列(下篇)
@Author:Runsen @Date:2020/7/6 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 七十四、Python | Leetcode数字系列(下篇)
@Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 七十三、Python | Leetcode数字系列(上篇)
@Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 七十二、Python | Leetcode字符串系列(下篇)
@Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 七十一、Python | Leetcode字符串系列(上篇)
@Author:Runsen @Date:2020/7/3 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- 【快乐手撕LeetCode题解系列】——消失的数字
[快乐手撕LeetCode题解系列]--消失的数字
- 六十七、Leetcode数组系列(下篇)
@Author:Runsen @Date:2020/6/19 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...
最新文章
- LLVM一些语法规则
- 服务发现存储仓库 etcd 使用简介
- 实践作业3 (2017-12-4)
- 广度优先搜索_广度优先搜索(BFS)
- 深度学习基本概念的了解
- 浅析MongoDB数据库的海量数据存储应用
- js实现svg图形转存为图片下载[转]
- 找到最大回文子串_使用O(1)空间复杂度找到最大的回文子串
- dj鲜生-21-模板抽离-用户中心的父模板页制作-二级base_no_cart与三级base_user_center
- Java利用jacob实现文档格式转换
- 大数据(1)---大数据全系技术概览
- 如何高效使用和管理Bitmap--图片缓存管理模块的设计与实现
- GdiPlus[16]: IGPLinearGradientBrush 之 SetBlendBellShape、SetBlendTriangularShape
- sql2005没有服务器名称
- 南方cass简码识别大全_南方CASS简码成图的方法
- 乐视max70老款_这货是电视?超大尺寸乐视TV Max70试玩
- JWT springboot集成jWT
- Codeforces Round #127 (Div. 1) B. Guess That Car! 扫描线
- 第10课:生活中的迭代模式——下一个就是你了
- java swing计算机_利用JAVA SWING 编程,要在当前窗体中显示如下信息提示框,则需要编写的代码...