华为OD机试C卷 - 会议室占用时间段 - 区间合并 - (Java C++ JavaScript Python)
一、题目描述
现有若干个会议,所有会议共享一个会议室,用数组表示各个会议的开始时间和结束时间,
格式为: [[会议1开始时间,会议1结束时间],[会议2开始时间,会议2结束时间]] 请计算会议室占用时间段。
二、输入描述
[[会议1开始时间,会议1结束时间],[会议2开始时间,会议2结束时间] ]
备注:
会议个数范围: [1,100]
会议室时间段: [1,24]
三、输出描述
输出格式预输入一致,具体请看用例。
[[会议开始时间,会议结束时间],[会议开始时间,会议结束时间]
四、测试用例
输入
[[1 ,4],[4,5]]
输出
[[1,5]]
五、解题思路
这是一个典型的区间合并问题,可以按以下步骤解决:
-
排序:按会议开始时间排序。
-
合并:遍历每个会议,与已合并的最后一个区间比较:
-
若当前开始时间 > 上一个结束时间 → 不重叠,直接添加。
-
否则 → 重叠或连续,合并(更新结束时间为两者最大值)。
-