怎样建设个人影视网站,有关网站建设的说说,南阳网站建设多少钱,免费企业查询网站文章目录题目描述思路 代码计划里 hot 100 剑指Offer 的题目中唯一一道会员题#xff0c;同时也是最后一道没写的题#xff0c;刚好今天 leetcode 发了一天会员可以写上…简直命运石之门的选择#xff0c;感动#xff01; 题目描述
转化成上下车问题#xff…
文章目录题目描述思路 代码计划里 hot 100 剑指Offer 的题目中唯一一道会员题同时也是最后一道没写的题刚好今天 leetcode 发了一天会员可以写上…简直命运石之门的选择感动 题目描述
转化成上下车问题好像leetcode 也有原题不过没写到start 就是 上车end 就是下车最多会议室就是【车上最多人数】
思路 代码
步骤一根据 intervals 新建 updown 数组【时间】【上下车】步骤二对 updown 数组进行排序根据时间点进行排序同一时间则先下车步骤三模拟上下车同时维护【车上最大人数】
class Solution {// 理解成【上下车问题】开始 上车1人结束 下车1人会议室数量 车上人数public int minMeetingRooms(int[][] intervals) {// 1. 初始化分上下车建立新数组int n intervals.length;int[][] updown new int[n * 2][2];for(int i 0; i 2 * n; i 2) {updown[i][0] intervals[i / 2][0]; // 取开始值updown[i][1] 1; // 上车updown[i 1][0] intervals[i / 2][1]; // 取结束值updown[i 1][1] -1; // 下车}// 2. 排序时间相同先下车结束时间不同早的先Arrays.sort(updown, (o1, o2) - (o1[0] ! o2[0] ? Integer.compare(o1[0], o2[0]) : Integer.compare(o1[1], o2[1])));// 3. 模拟上下车流程维护最大值int count 0;int max 0;for(int[] temp : updown) {// 上车 or 下车count temp[1]; // 获取最大的车上人数max Math.max(count, max);}return max;}
}无注释版
class Solution {public int minMeetingRooms(int[][] intervals) {int n intervals.length;int[][] updown new int[n * 2][2];for(int i 0; i 2 * n; i 2) {updown[i][0] intervals[i / 2][0]; updown[i][1] 1; updown[i 1][0] intervals[i / 2][1]; updown[i 1][1] -1;}Arrays.sort(updown, (o1, o2) - (o1[0] ! o2[0] ? Integer.compare(o1[0], o2[0]) : Integer.compare(o1[1], o2[1])));int count 0;int max 0;for(int[] temp : updown) {count temp[1]; max Math.max(count, max);}return max;}
}