你是一名行政助理,手里有两位客户的空闲时间表:slots1slots2,以及会议的预计持续时间 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 []

唯一需要注意的地方就是先要对slots1slots2排序。

我将该问题的其他语言版本添加到了我的GitHub Leetcode

如有问题,希望大家指出!!!

Leetcode 1229:安排会议日程(超详细的解法!!!)相关推荐

  1. Leetcode 1229. 安排会议日程

    1229. 安排会议日程 解题思路 又是看着测试用例做的答案,效率不太高. 题目中给的基本测试用例都是排序好的,在后面的测试用例中,又有些没有排序好的.看到了这样子的测试用例,又得退回去做了一个排序. ...

  2. LeetCode 1229. 安排会议日程(双指针)

    文章目录 1. 题目 2. 解题 1. 题目 你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间. 「 ...

  3. Leetcode 1162:地图分析(超详细的解法!!!)

    你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远的海洋区域是是哪一个吗 ...

  4. Leetcode 37:解数独(超详细的解法!!!)

    编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 ...

  5. Leetcode 503:下一个更大元素 II(超详细的解法!!!)

    给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它 ...

  6. Leetcode 496:下一个更大元素 I(超详细的解法!!!)

    给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字 x 的下一个更 ...

  7. Leetcode 739:每日温度(超详细的解法!!!)

    根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数.如果之后都不会升高,请输入 0 来代替. 例如,给定一个列表 temperatures = [73, 74 ...

  8. Leetcode 29:两数相除(超详细的解法!!!)

    给定两个整数,被除数 dividend 和除数 divisor.将两数相除,要求不使用乘法.除法和 mod 运算符. 返回被除数 dividend 除以除数 divisor 得到的商. 示例 1: 输 ...

  9. Leetcode 1258:近义词句子(超详细的解法!!!)

    给你一个近义词表 synonyms 和一个句子 text , synonyms 表中是一些近义词对 ,你可以将句子 text 中每个单词用它的近义词来替换. 请你找出所有用近义词替换后的句子,按 字典 ...

最新文章

  1. 一文读懂机器学习中的正则化
  2. 【全网最全的博客美化系列教程】06.推荐和反对炫酷样式的实现
  3. EOS 消息设计(1)消息定义
  4. 使用Jmeter对mysql进行性能测试入门
  5. lamda获取参数集合去空_(转)Java8使用lambda表达式进行集合的遍历
  6. CSP - J 2020 T1 优秀的拆分
  7. GitHub推出“AI程序员”插件 !
  8. RoadStar创始人曝光真相:投资方忽然冻结账户,威逼利诱抢公章
  9. cannot remove `libtoolT’: No such file or directory
  10. Unity3D 内存释放 垃圾回收
  11. 完美卸载mac电脑里的软件及残留清理教程
  12. 下行期的资本,正在追逐「猫品牌」
  13. 智慧园区一体化信息管理平台设计方案
  14. CF大陆斗C战士(二)
  15. [从头读历史] 第241节 根据天时定历法
  16. Nginx+Tomcat服务器负载均衡实践方案
  17. 阅读理解调研及NLP其它任务转化为MRC参考
  18. 【蓝桥杯】有一张 m×n 个小方格的地图,一个机器人位于地图的左上角,它每步只能向右或者向下移动一格。。。
  19. 企业基本财务指标计算
  20. 带权并查集【bzoj3362】: [Usaco2004 Feb]Navigation Nightmare 导航噩梦

热门文章

  1. 解决springboot maven多模块项目打包的时候某个被依赖的模块报错找不到main class
  2. 高德地图机器学习岗位面试问题
  3. linux下用google protocol buffer(gpb)出现的编译问题------前后耗掉1个多小时
  4. 微信拟推出个人微信云存储付费服务
  5. STM32开发中各库函数的主要作用和关系。
  6. Dell 错误代码(供参考) 我试过报E1410 却是坏阵列卡 杯具
  7. 网上下载的视频有水印怎么办?教你这样操作,3分钟快速去掉水印
  8. 【greenplum_installer】GP一键安装教程
  9. final、finally、finally
  10. 寄我的第一台笔记本电脑