AcWing 906. 区间分组
原题链接
简单
作者:
破云
,
2020-06-23 18:52:23
,
所有人可见
,
阅读 643
算法1
(java) $O(nlgn)$
java 代码
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[]args){
Scanner sn =new Scanner(System.in);
int N = sn.nextInt();
int[][] data = new int[N][2];
for(int i=0;i<N;i++){
data[i][0]=sn.nextInt();
data[i][1]=sn.nextInt();
}
Arrays.sort(data,((o1, o2) -> o1[0]-o2[0]));
PriorityQueue<Integer> heap = new PriorityQueue <>();
for (int i = 0; i < N; i++) {
if(!heap.isEmpty() && data[i][0]>heap.peek()) heap.poll(); // 合并到同一个组,移除当前最小的分组
heap.offer(data[i][1]); // 添加新的分组
}
System.out.println(heap.size());
}
}