[LeetCode] 253. 会议室 II
Description
给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,返回 所需会议室的最小数量 。
Example
输入:intervals = [[0,30],[5,10],[15,20]] 输出:2
Analysis
1、模拟
用优先队列维护每个会议室的结束时间,每次与最小的结束时间进行比较,更新最小结束时间或创建新的会议室
2、上下车
类似于公交车上下车,开始时间+1,结束时间-1,记录中间过程最大的值
Code
优先队列
static bool cmp(const vector<int> &a, const vector<int> &b) { if(a[0] == b[0]) return a[1] < b[1]; return a[0] < b[0]; } int minMeetingRooms(vector<vector<int>>& intervals) { sort(intervals.begin(), intervals.end(), cmp); priority_queue<int, vector<int>, greater<int>> q; int ans = 1; q.push(intervals[0][1]); for(int i = 1;i < intervals.size();i++) { if(intervals[i][0] >= q.top()) { q.pop();q.push(intervals[i][1]); } else { q.push(intervals[i][1]); } } return q.size(); }
上下车
int minMeetingRooms(vector<vector<int>>& intervals) { vector<pair<int,int>> v; for(auto i : intervals) { v.push_back(make_pair(i[0], 1)); v.push_back(make_pair(i[1], -1)); } sort(v.begin(), v.end()); int ans = 0, c = 0; for(auto i : v) { c += i.second; ans = max(ans, c); } return ans; }
岂能尽如人意,但求无愧我心
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了