您的位置:首页 > 其它

活动安排问题

2017-10-17 13:58 477 查看
题目描述:

X轴上有N条线段,每条线段有1个起点S和终点E。最多能够选出多少条互不重叠的线段。(注:起点或终点重叠,不算重叠)。

例如:[1 5][2 3][3 6],可以选[2 3][3 6],这2条线段互不重叠。

输入

第1行:1个数N,线段的数量(2 <= N <= 10000)

第2 - N + 1行:每行2个数,线段的起点和终点(-10^9 <= S,E <= 10^9)

输出

输出最多可以选择的线段数量。

输入示例

3

1 5

2 3

3 6

输出示例

2

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class ActivityPlan {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
Integer[][] a = new Integer[N + 5][2];
for (int i = 1; i <= N; i++) {
a[i][0] = scanner.nextInt();
a[i][1] = scanner.nextInt();
}
Arrays.sort(a, 1, N, (aa, bb) -> aa[1] - bb[1]);
int count = 0;
int e = a[1][1];
if (e != 0)
count++;
for (int i = 2; i <= N; i++) {
if (a[i][0] >= e) {
count++;
e = a[i][1];
}
}
System.out.println(count);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: