时间规划求最少面试官

公司正在组织集中面试,每场面试需要一个面试官,现在以数组的形式给出了每场面试的开始时间和结束时间的时间安排表 [si, ei] (si < ei)),为避免面试冲突,请问至少需要多少位面试官,才能满足这些面试安排。

示例 1:
输入: [[0, 30],[5, 10],[15, 20]]输出: 2
示例 2:
输入: [[7,10],[2,4]]输出: 1
这是一道时间规划问题
思路:先排序,然后比较endTime 和 startTime

public int minInterviewers(int[][] intervals) {
      if(intervals==null||intervals.length==0) {
          return 0;
      }
      PriorityQueue<Integer> pq = new PriorityQueue<>();
      Arrays.sort(intervals, Comparator.comparingInt(i -> i[0]));
      pq.add(intervals[0][1]);
      for(int i=1;i!=intervals.length;i++) {
          int last=pq.peek();
          if(last<=intervals[i][0]) {
              pq.poll();
              pq.add(intervals[i][1]);
          }else{
              pq.add(intervals[i][1]);
          }
      }
      return pq.size();
  }

你可能感兴趣的:(LeetCode)