算法:什么是数飞机问题?

159 阅读1分钟

在这里插入图片描述

最近小多米一直爬在窗子边抬头看着天空,指着空中飞机留下的白色痕迹,激动的手舞足蹈的给我说:飞机,飞机。 其实每架飞机的起飞和降落都有固定的时间,假定已经知道了每架飞机起飞和降落的时间列表,小多米想知道天空同时最多有多少架飞机?

为了帮助小多米解决这个问题,今天我们就来看看算法领域的“数飞机”问题。

“数飞机”问题规则如下:

  • 已知飞机的起飞和降落时间的列表,用序列 interval 表示。
  • 如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权

小多米需要计算出天上同时最多有多少架飞机?

样例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
解释: 降落优先于起飞.

上面就是算法中“数飞机”问题。聪明的你,知道怎么帮助小多米解决这个问题吗?