Leetcode 1229:安排会议日程(超详细的解法!!!)
你是一名行政助理,手里有两位客户的空闲时间表:slots1
和 slots2
,以及会议的预计持续时间 duration
,请你为他们安排合适的会议时间。
「会议时间」是两位客户都有空参加,并且持续时间能够满足预计时间 duration
的 最早的时间间隔。
如果没有满足要求的会议时间,就请返回一个 空数组。
「空闲时间」的格式是 [start, end]
,由开始时间 start
和结束时间 end
组成,表示从 start
开始,到 end
结束。
题目保证数据有效:同一个人的空闲时间不会出现交叠的情况,也就是说,对于同一个人的两个空闲时间 [start1, end1]
和 [start2, end2]
,要么 start1 > end2
,要么 start2 > end1
。
示例 1:
输入:slots1 = [[10,50],[60,120],[140,210]], slots2 = [[0,15],[60,70]], duration = 8
输出:[60,68]
示例 2:
输入:slots1 = [[10,50],[60,120],[140,210]], slots2 = [[0,15],[60,70]], duration = 12
输出:[]
提示:
1 <= slots1.length, slots2.length <= 10^4
slots1[i].length, slots2[i].length == 2
slots1[i][0] < slots1[i][1]
slots2[i][0] < slots2[i][1]
0 <= slots1[i][j], slots2[i][j] <= 10^9
1 <= duration <= 10^6
解题思路
这个问题和之前问题Leetcode 986:区间列表的交集(超详细的解法!!!)非常像,直接改一下代码就可以了。
class Solution:def minAvailableDuration(self, A: List[List[int]], B: List[List[int]], duration: int) -> List[int]:A.sort()B.sort()i = j = 0while i < len(A) and j < len(B):l = max(A[i][0], B[j][0])r = min(A[i][1], B[j][1])if l + duration <= r:return [l, l + duration]if A[i][1] < B[j][1]:i += 1else:j += 1return []
唯一需要注意的地方就是先要对slots1
和slots2
排序。
我将该问题的其他语言版本添加到了我的GitHub Leetcode
如有问题,希望大家指出!!!
Leetcode 1229:安排会议日程(超详细的解法!!!)相关推荐
- Leetcode 1229. 安排会议日程
1229. 安排会议日程 解题思路 又是看着测试用例做的答案,效率不太高. 题目中给的基本测试用例都是排序好的,在后面的测试用例中,又有些没有排序好的.看到了这样子的测试用例,又得退回去做了一个排序. ...
- LeetCode 1229. 安排会议日程(双指针)
文章目录 1. 题目 2. 解题 1. 题目 你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间. 「 ...
- Leetcode 1162:地图分析(超详细的解法!!!)
你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗 ...
- Leetcode 37:解数独(超详细的解法!!!)
编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...
- Leetcode 503:下一个更大元素 II(超详细的解法!!!)
给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它 ...
- Leetcode 496:下一个更大元素 I(超详细的解法!!!)
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x 的下一个更 ...
- Leetcode 739:每日温度(超详细的解法!!!)
根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数.如果之后都不会升高,请输入 0 来代替. 例如,给定一个列表 temperatures = [73, 74 ...
- Leetcode 29:两数相除(超详细的解法!!!)
给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...
- Leetcode 1258:近义词句子(超详细的解法!!!)
给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...
最新文章
- 一文读懂机器学习中的正则化
- 【全网最全的博客美化系列教程】06.推荐和反对炫酷样式的实现
- EOS 消息设计(1)消息定义
- 使用Jmeter对mysql进行性能测试入门
- lamda获取参数集合去空_(转)Java8使用lambda表达式进行集合的遍历
- CSP - J 2020 T1 优秀的拆分
- GitHub推出“AI程序员”插件 !
- RoadStar创始人曝光真相:投资方忽然冻结账户,威逼利诱抢公章
- cannot remove `libtoolT’: No such file or directory
- Unity3D 内存释放 垃圾回收
- 完美卸载mac电脑里的软件及残留清理教程
- 下行期的资本,正在追逐「猫品牌」
- 智慧园区一体化信息管理平台设计方案
- CF大陆斗C战士(二)
- [从头读历史] 第241节 根据天时定历法
- Nginx+Tomcat服务器负载均衡实践方案
- 阅读理解调研及NLP其它任务转化为MRC参考
- 【蓝桥杯】有一张 m×n 个小方格的地图,一个机器人位于地图的左上角,它每步只能向右或者向下移动一格。。。
- 企业基本财务指标计算
- 带权并查集【bzoj3362】: [Usaco2004 Feb]Navigation Nightmare 导航噩梦
热门文章
- 解决springboot maven多模块项目打包的时候某个被依赖的模块报错找不到main class
- 高德地图机器学习岗位面试问题
- linux下用google protocol buffer(gpb)出现的编译问题------前后耗掉1个多小时
- 微信拟推出个人微信云存储付费服务
- STM32开发中各库函数的主要作用和关系。
- Dell 错误代码(供参考) 我试过报E1410 却是坏阵列卡 杯具
- 网上下载的视频有水印怎么办?教你这样操作,3分钟快速去掉水印
- 【greenplum_installer】GP一键安装教程
- final、finally、finally
- 寄我的第一台笔记本电脑