题解 | #主持人调度(二)#

主持人调度(二)

http://www.nowcoder.com/practice/4edf6e6d01554870a12f218c94e8a299

边界计数法

import java.util.*;


public class Solution {
    public int minmumNumberOfHost (int n, int[][] startEnd) {
//         Arrays.sort(startEnd, (a, b) -> a[0]==b[0]?a[1]-b[1]:a[0]-b[0]);
        int ans = 0;
        TreeMap<Integer, Integer> tm = new TreeMap<>();
        
        for(int[] a : startEnd){
            tm.put(a[0], tm.getOrDefault(a[0], 0) + 1);
            tm.put(a[1], tm.getOrDefault(a[1], 0) - 1);
        }
        int overlap = 0; //重叠数 也就是同时需要的主持人数
        for(int a : tm.values()){
            overlap += a;
            ans = Math.max(ans, overlap); //贪心取最大的一次重叠数
        }
        return ans;
        
        
    }
}
全部评论

相关推荐

01-12 09:24
门头沟学院 Java
点赞 评论 收藏
分享
01-11 08:47
门头沟学院 Java
choumoduji...:读研的目的就是为了以最快的速度和最低的要求完成“学校”规定的毕业标准,而不是所谓课题组的要求
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务