题目如下:

你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间。

「会议时间」是两位客户都有空参加,并且持续时间能够满足预计时间 duration 的 最早的时间间隔。

如果没有满足要求的会议时间,就请返回一个 空数组。

「空闲时间」的格式是 [start, end],由开始时间 start 和结束时间 end 组成,表示从 start 开始,到 end 结束。

题目保证数据有效:同一个人的空闲时间不会出现交叠的情况,也就是说,对于同一个人的两个空闲时间 [start1, end1] 和 [start2, end2],要么 start1 > end2,要么 start2 > end1。

解题思路:首先对slots1和slots2分别按start排好序。接下来分别从slots1和slots2中取第一个元素,判断两个元素是否满足会议,如果不满足,则从end较小的元素对应的slots中取后一个元素。以此类推,直到找出符合条件的slot为止。

代码如下:

class Solution(object):
def minAvailableDuration(self, slots1, slots2, duration):
"""
:type slots1: List[List[int]]
:type slots2: List[List[int]]
:type duration: int
:rtype: List[int]
"""
def cmpf(v1,v2):
return v1[0] - v2[0]
slots1.sort(cmp=cmpf)
slots2.sort(cmp=cmpf)
inx1 = inx2 = 0
while inx1 < len(slots1) and inx2 < len(slots2):
item1 = slots1[inx1]
item2 = slots2[inx2]
if item1[0] > item2[1]:
inx2 += 1
elif item1[1] < item2[0]:
inx1 += 1
else:
ms = max(item1[0],item2[0])
me = min(item1[1],item2[1])
if me - ms >= duration:
return [ms,ms+duration]
if item1[1] < item2[1]:
inx1 += 1
else:
inx2 += 1
return []

最新文章

  1. Torch7学习笔记(二)nn Package
  2. 使用git进行团队合作开发
  3. 【转】前端精选文摘:BFC 神奇背后的原理
  4. Arch命令行与安装包
  5. 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(四)
  6. lintcode 中等题:Majority number II 主元素 II
  7. php yii框架使用MongoDb
  8. navigationController Pop回指定页面
  9. TEA算法
  10. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\d29b5393\123c3a1c\App_Code.odl3w4o6.dll”--“拒绝访问。 ”
  11. [转] 用GDB调试程序(五)
  12. ZZY的宠物
  13. XML巩固
  14. 【BZOJ2434】阿狸的打字机(AC自动机,树状数组)
  15. C#之Message(转)
  16. Docker 堆栈
  17. elementUi的时间选择器在IE浏览器的赋值问题--前端
  18. node.js 递归复制文件夹(附带文件过滤功能)
  19. 不高兴的o( ̄ヘ ̄o#)JJ
  20. React Native之TextInput的介绍与使用(富文本封装与使用实例,常用输入框封装与使用实例)

热门文章

  1. Hibernate初了解
  2. Day06:方法 / 猜字母游戏
  3. python map 的用法
  4. 暴力破解-H3C路由器-MSR900
  5. spring boot-8.静态资源映射
  6. springMVC原理简单介绍
  7. 三校联训 【NOIP模拟】寻找
  8. 如何创建并发布一个 vue 组件
  9. luogu P2481 [SDOI2010]代码拍卖会
  10. redis 模拟jedis 操作string类型数据