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的主要内容,如果未能解决你的问题,请参考以下文章