华为OD真题-路灯照明

这篇具有很好参考价值的文章主要介绍了华为OD真题-路灯照明。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/**
* 路灯照明问题
*
* 在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。
*
* 每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。
*
* 输入描述
*
* 第一行为一个数N,表示路灯个数,1<=N<=100000
*
* 第二行为N个空格分隔的数,表示路径的照明半径,1<=照明半径<=100000*100
*
* 输出描述
*
* 第一个路灯和最后一个路灯之间,无法照明的区间的长度和
*
* 示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
*
* 输入
*
* 2
*
* 50 50
*
* 输出
*
* 0
*
* 说明
*
* 路灯1覆盖0-50,路灯2覆盖50-100,路灯1和路灯2之间(0米-100米)无未覆盖的区间。
*
* 示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
*
* 输入
*
* 4
*
* 50 70 20 70
*
* 解释:
*
* 路灯1 覆盖0-50
*
* 路灯2 覆盖30-170
*
* 路灯3 覆盖180-220
*
* 路灯4 覆盖230-370
*
* 输出
*
* 20
*
* 说明
*
* [170,180],[220,230],两个未覆盖的区间,总里程为20
*/文章来源地址https://www.toymoban.com/news/detail-553842.html

public class StreetLighting {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int lightNum = Integer.parseInt(sc.nextLine());
        List<Integer> radius = new ArrayList<>();
        for (int i = 0; i < lightNum; i++){
            radius.add(sc.nextInt());
        }
        int range = rang(radius);
        System.out.println(range);
    }

    public static int rang(List<Integer> radis){
        int range = 0;
        int left;
        int right = radis.get(0);
        int beforeRight = right;
        for (int i = 1; i < radis.size(); i++) {
            int value = 100 * (i);
            left = value - radis.get(i);
            right = value + radis.get(i);
            if (left > beforeRight) {
                range = range + (left - beforeRight);
            }
            beforeRight = right;
        }
        return range;
    }
}

到了这里,关于华为OD真题-路灯照明的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包