牛客网———剩下的树

题目描述

    有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。     现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。     可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。

输入描述:

    两个整数L(1<=L<=10000)和M(1<=M<=100)。
    接下来有M组整数,每组有一对数字。

输出描述:

    可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。
链接:https://www.nowcoder.com/questionTerminal/f5787c69f5cf41499ba4706bc93700a2
来源:牛客网

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
 
public class Main {
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int changdu = scanner.nextInt();
            int b = scanner.nextInt();
            Set<Integer> set = new HashSet<Integer>();
            for (int i = 0; i <= changdu; i++) {
                set.add(i);
            }
            for (int i = 0; i < b; i++) {
                int min = scanner.nextInt();
                int max = scanner.nextInt();
                for (int j = min; j <= max; j++) {
                    set.remove(j);
                }
            }
            System.out.println(set.size());
        }
    }
 
}

猜你喜欢

转载自www.cnblogs.com/JAYPARK/p/10121705.html