391. 数飞机

描述

给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机?

注意事项

如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权。

样例

对于每架飞机的起降时间列表:[[1,10],[2,3],[5,8],[4,7]], 返回3。

代码

/**
 * Definition of Interval:
 * public classs Interval {
 *     int flag, end;
 *     Interval(int flag, int end) {
 *         this.flag = flag;
 *         this.end = end;
 *     }
 */
class Point {
    int time;
    int flag;

    Point(int t, int s) {
        this.time = t;
        this.flag = s;
    }
    
    public static Comparator<Point> PointComparator  = new Comparator<Point>(){
        public int compare(Point p1, Point p2){
            if (p1.time == p2.time) {
                // 1代表起飞, 0代表降落, 降落和起飞在同一时刻降落具有优先级
                return p1.flag - p2.flag;
            }
            else {
                return p1.time - p2.time;
            }
        }
    };
}
  
class Solution {
    /**
     * @param intervals: An interval array
     * @return: Count of airplanes are in the sky.
     */
    public int countOfAirplanes(List<Interval> airplanes) { 
        List<Point> list = new ArrayList<>(airplanes.size() * 2);
        for (Interval i : airplanes){
            list.add(new Point(i.start, 1));
            list.add(new Point(i.end, 0));
        }
        // 要统计某一时刻天上最大的飞机数目必然要按照时间排序
        Collections.sort(list, Point.PointComparator);
        int count = 0, ans = 0;
        // 只需要在起飞降落的时刻进行统计就可以了
        for (Point p : list) {
            if (p.flag == 1) {
                count++;
            }
            else {
                count--;
            }
            // count 代表当前时刻数量, ans 代表天上最多飞机数量
            // 所以每次 for 循环都要比较
            ans = Math.max(ans, count);
        }

        return ans;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原题 给出飞机的起飞和降落时间的列表,用 interval 序列表示. 请计算出天上同时最多有多少架飞机?注意事项...
    Jason_Yuan阅读 3,576评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,120评论 19 139
  • 搭乘飞机是现在出公差和远游最普遍的选择,当然也是最安全以及最娇气的出行选择,可是在机场的时候总是会因为各种各样的原...
    飞巴商旅阅读 4,290评论 0 0
  • 自动类加载 (auto-load) 自动类加载说白了就是自动 include / require php 文件,这...
    痕无落阅读 2,924评论 0 2
  • 刚刚好,缘分把你们安排在我青春的开始。 初中的第一个学期的第一个星期的第一天的第一节课。缘分刚好让我遇见你们。 我...
    琳心阅读 1,261评论 0 0

友情链接更多精彩内容