查找所需的最少笔记本电脑数量
有 N 项工作,工作的开始时间和结束时间分别在数组 start[] 和 end[] 中给出。每个工作需要一台笔记本电脑,且笔记本电脑不能共享。如果你不工作时可以把笔记本电脑给别人使用,请计算最少需要多少台笔记本电脑。
例 1:
输入
N = 3
start[] = {1, 2, 3}
end[] = {4, 4, 6}
输出: 3
3
说明
我们可以清楚地看到,在时间 3
都应该在第 3 个时间完成自己的工作。因此,至少需要 3 台笔记本电脑
至少需要 3 台笔记本电脑。
例 2:
输入:
N = 3
start[] = {1, 5, 2}
end[] = {2, 6, 3}
输出 :
1
说明
所有工作只需一台笔记本电脑即可完成。
预计时间复杂度: O(N*logN)
预期辅助空间: O(N)
-----------
一开始没想到怎么做,后来想想其实就是最繁忙的时候,有几个任务是同时运行的,这就像公交车问题,就是公交车在哪一站是人最多的,于是就想起来差分数组来做了,直接用数组模拟,然后计算前缀和最大值即可,但是超时了,所以就换成treemap来做就过了。。