题目链接:凌乱的yyy / 线段覆盖
java代码:
import java.util.Arrays;
import java.util.Scanner;
class Time implements Comparable<Time>{
int start;
int end;
public Time(int start, int end) {
super();
this.start = start;
this.end = end;
}
// 将比赛按结束时间升序排列
public int compareTo(Time newTime) {
return Integer.compare(this.end, newTime.end);
}
}
public class Main {
public static void main(String[] args) {
int n;
Scanner in = new Scanner(System.in);
n = in.nextInt();
// 初始化对象数组并排序
Time arr[] = new Time[n];
for(int i=0;i<n;++i)
arr[i] = new Time(in.nextInt(), in.nextInt());
Arrays.sort(arr);
// count记录可参加的比赛总数,currentEnd记录当前可参加的最后一场比赛的结束时间
int count = 0, currentEnd = -1;
for(int i=0;i<n;++i) {
// 比赛的时间没有交集的话,count递增,currentEnd更新为该场比赛的结束时间
if(arr[i].start>=currentEnd) {
currentEnd = arr[i].end;
count++;
}
}
System.out.println(count);
}
}