牛客算法基础noob47 校门外的树
输入描述:
第一行包含两个整数 L 和 M(1 ≤ L ≤ 10000,1 ≤ M ≤ 100),分别表示马路长度和施工区域数量。接下来 M 行,每行给出两个整数 l_i 和 r_i(0 ≤ l_i ≤ r_i ≤ L),表示第 i 个施工区域的起始和终止坐标。
输出描述:
输出一个整数,表示移除所有施工区域内的树木(含端点)后,剩余树木的总数。
import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int L = in.nextInt();//马路的长度int M = in.nextInt();//地铁施工区域数//建立数组:arr[pos] = true 表示pos位置的树被施工移除boolean[] arr = new boolean[L + 1];//长度L+1,对应0到L的所有位置for(int i = 0;i < M; i++){int li = in.nextInt();//表示起点int ri = in.nextInt();//表示重点//遍历当前施工区域的所有位置,标记为施工中for(int pos = li; pos <= ri;pos++){arr[pos] = true;}}int remain = 0;//统计剩余树的数量:未被标记的位置数量for (boolean isRemoved : arr){if(!isRemoved){//如果位置未被施工,树还在remain++;}}System.out.println(remain);}
}