给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机?
样例
对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]]
, 返回3
。
注意
如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。
/**
* @param intervals: An interval array
* @return: Count of airplanes are in the sky.
*/
int countOfAirplanes(vector<Interval> &airplanes) {
// write your code here
int n = airplanes.size();
map<int, int> buf;
set<int> value;
for (int i = 0; i < n; i++)
{
buf[airplanes[i].start]++;
buf[airplanes[i].end]--;
value.insert(airplanes[i].start);
value.insert(airplanes[i].end);
}
int sum = 0;
int result = 0;
for (set<int>::iterator it = value.begin(); it != value.end(); it++)
{
sum += buf[*it];
if (sum > result)
{
result = sum;
}
}
return result;
}
};