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

主持人调度(二)

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;
        
        
    }
}
全部评论

相关推荐

北漂的牛马人:211佬,包进的,可能是系统问题
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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