【华为OD题库-085】路灯照明II-Java

题目

在一条笔直的公路上安装了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

输出

20

说明

路灯1覆盖0-50

路灯2覆盖30-170

路灯3覆盖180-220

路灯4覆盖230-370

170,180\],\[220,230\],两个未覆盖的区间,总里程为20

思路

简单逻辑分析题

每个路灯的坐标为:i*100,照射范围为:[i*100-nums[i],i*100+nums[i]]

如果当前路灯照射范围的起始值比上一个路灯照射范围的结尾值还要大,那么说明这一部分距离无法覆盖:当前start-上一个end

最后累加未覆盖距离输出即可

题解

java 复制代码
package hwod;

import java.util.Scanner;

public class LampCoverageDistance {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
        }
        System.out.println(lampCoverageDistance(nums));
    }

    private static int lampCoverageDistance(int[] nums) {
        int res = 0;
        int start = 0, end = 0;
        for (int i = 0; i < nums.length; i++) {
            if (i == 0) {
                end += nums[i];
            } else {
                start = i * 100 - nums[i];
                if (start > end) {
                    res += start - end;
                }
                end = i * 100 + nums[i];
            }
        }

        return res;
    }
}

推荐

如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。

相关推荐
元亓亓亓2 分钟前
Java后端开发day38--不可变集合&Stream流
java·开发语言
纪元A梦9 分钟前
华为OD机试真题——阿里巴巴找黄金宝箱Ⅰ(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
java·c语言·javascript·c++·python·华为od·go
CHQIUU25 分钟前
跨语言哈希一致性:C# 与 Java 的 MD5 之战?
java·c#·哈希算法
JavaDog程序狗37 分钟前
【java】easypoi导出excel单元格,填充动态下拉列
java·spring boot·excel
Java中文社群1 小时前
国内首个「混合推理模型」Qwen3深夜开源,盘点它的N种对接方式!
java·人工智能·后端
掉鱼的猫1 小时前
qwen3 惊喜发布,用 ollama + solon ai (java) 尝个鲜
java·openai·deepseek
GuGuStudy1 小时前
这都是什么多线程知识
java
Bob99981 小时前
Amlogic S905L3系列盒子 ROM DIY相关
java·javascript·数据仓库·vscode·eclipse·tomcat·vim
带刺的坐椅1 小时前
qwen3 惊喜发布,用 ollama + solon ai (java) 尝个鲜
java·spring·solon·solon-ai·qwen3
.生产的驴2 小时前
SpringBoot 接口国际化i18n 多语言返回 中英文切换 全球化 语言切换
java·开发语言·spring boot·后端·前端框架