【扫描线】LeetCode 253. 会议室 II

题目链接

253. 会议室 II

思路

这道题非常类似于坐公交车上下车。

样例中 intervals = [[0,30],[5,10],[15,20]] 可以这么拆解

上车:[0, +1], [5, +1], [15, +1]
下车:[10, -1], [20, -1], [30, -1]

我们可以在开始和结束时间打上标记,最后再对标记求和。在对标记求和的过程中其实是在实时统计公交车人数,取最大值即可。

代码

class Solution {
    public int minMeetingRooms(int[][] intervals) {
        int[] population = new int[1000000 + 3];
        for(int i = 0; i < intervals.length; i++){
            population[intervals[i][0]]++;
            population[intervals[i][1]]--;
        }

        int result = 0;
        int sum = 0;
        for(int num : population){
            sum += num;
            result = Math.max(result, sum);
        }

        return result;
    }
}
posted @   Frodo1124  阅读(188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示