最少会议室数量

Minimum number of meeting rooms

抱歉,如果这里不允许此类问题。

我遇到了这个问题:“给定一个代表“N”次会议开始和结束时间的间隔列表,找出举行所有会议所需的最少房间数。”。我通过找到相交间隔的最大数量来解决它。

但在答案部分,它使用最小堆来跟踪会议的结束时间并删除所有已结束的会议和 returns 最小堆在任何时候达到的最大大小。请问我错过了什么?

为什么使用最小堆是更 efficient/the 理想的答案?

两种解决方案的时间复杂度均为 O(nlogn)。 Space 两个答案的复杂性相同,我的答案效率更高一些,因为我只需要 space 进行排序。

我附上了两个答案。提前致谢

您的解决方案在复杂性方面看起来不错,但似乎根本没有通过测试。原因之一是您的 'else' 代码块,它会重置所有内容并重新开始计数,但看起来应该只减一。

所以,你有一个测试

start[0] = 0 end[0] = 1000 
start[1] = 0 end[1] = 1000 
start[2] = 1 end[2] = 2
start[3] = 3 end[3] = 10
start[4] = 5 end[4] = 6

它会失败,因为当 index=2 并且您访问 else code-block 时,您将得到 count=1,但它是错误的,因为它必须是 2.