给出飞机的起飞和降落时间的列表,用序列 interval 表示. 请计算出天上同时最多有多少架飞机?
如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。
LintCode 领扣样例 1:
输入: [(1, 10), (2, 3), (5, 8), (4, 7)]
输出: 3
解释:
第一架飞机在1时刻起飞, 10时刻降落.
第二架飞机在2时刻起飞, 3时刻降落.
第三架飞机在5时刻起飞, 8时刻降落.
第四架飞机在4时刻起飞, 7时刻降落.
在5时刻到6时刻之间, 天空中有三架飞机.
样例 2:
输入: [(1, 2), (2, 3), (3, 4)]
输出: 1
解释: 降落优先于起飞.
算法一 前缀和
在开始时间位置+1架飞机,在结束时间-1架飞机,求一遍前缀和,就是对应时间飞机的数量,
前缀和算法涉及到了对时间离散化,所以这里更推荐扫描线
算法二 扫描线
扫描线,把飞机按开始时间从小到大排序,如果开始时间相同,