首页 > 试题广场 >

安排会议室

[编程题]安排会议室
  • 热度指数:44 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 512M,其他语言1024M
  • 算法知识视频讲解
    掌阅最近会召开一个重大会议,需要您来布置会议时间,给你一个整数 eventTime 表示该活动的的总时长,这个活动开始于 t = 0 ,结束于 t = eventTime 。同时给你两个长度为 n 的整数数组 startTimeendTime 。它们表示这次活动中 n 个时间 没有重叠 的会议,其中第 i 个会议的时间为 [startTime[i], endTime[i]]
    你可以重新安排 至多 一个会议,安排的规则是将会议时间平移,且保持原来的 会议时长 ,你的目的是移动会议后 最大化 最长 连续空余时间。请你返回重新安排会议以后,可以得到的 最大 空余时间。
注意
1、会议 不能 安排到整个活动的时间以外,且会议之间需要保持互不重叠。
2、重新安排会议以后,会议之间的顺序可以发生改变。

输入描述:
第一行输入1个数字表示eventTime
第二行输入多个数字(空格隔开)组成startTime
第三行输入多个数字(空格隔开)组成endTime


输出描述:
输出一个整数表示答案
示例1

输入

5
1 3
2 5

输出

2

说明

将 [1, 2] 的会议安排到 [2, 3] ,得到空余时间 [0, 2]

备注:
  • 1 <= eventTime <= 10(9)
  • n == startTime.length == endTime.length
  • 2 <= n <= 10(5)
  • 0 <= startTime[i] < endTime[i] <= eventTime
  • endTime[i] <= startTime[i + 1]其中i在范围[0, n - 2]之间。

这道题你会答吗?花几分钟告诉大家答案吧!