牛客算法基础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);
    }
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值