zoukankan      html  css  js  c++  java
  • lintcode-391-数飞机

    391-数飞机

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

    注意事项

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

    样例

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

    标签

    数组 LintCode 版权所有 区间

    思路

    使用 map 记录起飞时刻与降落时刻飞机的数量,起飞时刻飞机数量 +1,降落时刻飞机数量 -1,然后将时刻排序,遍历排序后的时刻,寻找出最大值

    code

    /**
     * Definition of Interval:
     * classs Interval {
     *     int start, end;
     *     Interval(int start, int end) {
     *         this->start = start;
     *         this->end = end;
     *     }
     */
    class Solution {
    public:
        /**
         * @param intervals: An interval array
         * @return: Count of airplanes are in the sky.
         */
        int countOfAirplanes(vector<Interval> &airplanes) {
            // write your code here
            int size = airplanes.size();
            if (size <= 0) {
                return 0;
            }
            map<int, int> airCount;
            set<int> airTime;
            int maxCount = INT_MIN, curCount = 0;
            for (int i = 0; i < size; i++) {
                airCount[airplanes[i].start]++;
                airCount[airplanes[i].end]--;
                airTime.insert(airplanes[i].start);
                airTime.insert(airplanes[i].end);
            }
            for (auto t: airTime) {
                curCount += airCount[t];
                maxCount = max(maxCount, curCount);
            }
            return maxCount;
        }
    };
    
  • 相关阅读:
    夜半饮酒
    邀你到成都来
    成都,我的天堂
    真不想松开你的手
    创业,你懂如何求人办事么?
    只要你愿意
    【五月的歌】重振山河
    成都,我爱你
    就算忘了自己也忘不了你
    假如
  • 原文地址:https://www.cnblogs.com/libaoquan/p/7344489.html
Copyright © 2011-2022 走看看