会议室占用时间段(100)
- 所有会议共享一个会议室,数组表示每个会议的开始、结束时间,如[[会议1开始时间,会议1结束时间],[会议2开始时间,会议2结束时间]];
- 计算会议室占用时间
示例1
输入:
[[1,4],[2,5],[7,9],[14,18]]
输出:
[[1,5], [7,9],[14,18]]
说明:
时间段[1,4],[2,5]重叠,合并为[1,5]
示例2
输入:
[[1,4],[4,5]]
输出:
[1,5]
思路:
- 按照开始时间升序排序,
- 从索引为1开始遍历,依次与前一个会议的结束时间比较,若小于等于则合并;
class MeetUsingTime:
def solution(self, alist):
result = []
pre = alist[0]
for i in range(1, len(alist)):
if alist[i][0] <= pre[1]:
pre[1] = alist[i][1]
else:
result.append(pre)
pre = alist[i]
result.append(pre)
print(result)
if __name__ == '__main__':
use_time = MeetUsingTime()
while True:
try:
alist = eval(input().strip())
use_time.solution(alist)
except KeyboardInterrupt:
break