253. Meeting Rooms II

Posted hannah_id

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了253. Meeting Rooms II相关的知识,希望对你有一定的参考价值。

扫描线算法

每进入一个区间插一面旗子,出区间拔一面旗子。

相当于在平地上磊台阶,每次进入一个相同的区域,则加一阶台阶,每次出了一个会议室则减少一个台阶。最少使用的房间数,就是台阶的最大高度。并且通过同一个位置的加台阶和减少台阶,可以实现边界处的处理。

class Solution {
public:
    int minMeetingRooms(vector<vector<int>>& intervals) {
        map<int, int> mp;
        for(auto u : intervals) {
            mp[u[0]]++;
            mp[u[1]]--;
        }
        int ans = 0, sum = 0;
        for(auto u : mp) {
            sum += u.second;
            ans = max(ans, sum);
        }
        return ans;
    }
};

map默认按键的大小升序。

因此只需要遍历一次map,从头开始做累加sum,累加过程中最大的sum就是答案。

以上是关于253. Meeting Rooms II的主要内容,如果未能解决你的问题,请参考以下文章

253. Meeting Rooms II

253. Meeting Rooms II

253. Meeting Rooms II

253 Meeting Rooms II

LeetCode 253. Meeting Rooms II(会议室)

Leetcode 253: Meeting Rooms II