1. 解题思路
这一题的话我们只需要先对meeting的时间进行一下排序,然后不断更新当前连续开会的时间即可。当某一个会议开始时,前面所有的会议都已经在某个时间结束时,此时中间的间隔就是不开会的时间,反之就需要update当前的最后一个会议截至的时间为之前所有会议与当前会议结束所需的最后时间。
2. 代码实现
给出python代码实现如下:
class Solution:
def countDays(self, days: int, meetings: List[List[int]]) -> int:
meetings = sorted(meetings)
prev = 0
ans = 0
for st, ed in meetings:
if st > prev:
ans += st - prev - 1
prev = max(prev, ed)
ans += days - prev
return ans
提交代码评测得到:耗时1267ms,占用内存66.8MB。