华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】

一、题目描述

在一条笔直的公路上安装了N个路灯,从位置0开始安装,路灯之间间距固定为100米。

每个路灯都有自己的照明半径,请计算第一个路灯和最后一个路灯之间,无法照明的区间的长度和。

二、输入描述

第一行为一个数N,表示路灯个数,1<=N<=100000。

第二行为N个空格分隔的数,表示路径的照明半径,1<=照明半径<=100000*100。

三、输出描述

第一个路灯和最后一个路灯之间,无法照明的区间的长度和。

四、解题思路

题目要求计算第一个路灯和最后一个路灯之间无法照明的区间的长度和。

解题思路如下:

  1. 读取输入的路灯个数n;
  2. 创建一个长度为n的整数数组arr,用于存储每个路灯的照明半径;
  3. 依次读取n个路灯的照明半径,将其存入数组arr中;
  4. 初始化变量num为0,用于累计无法照明的区间长度和;
  5. 从第二个路灯开始遍历数组arr,索引从1到n-1:
    • 计算当前路灯与前一个路灯之间的距离和,即arr[i] + arr[i-1]。
    • 如果距离和小于100,表示无法照明的区间长度不足100,累加到num中,即num += 100 - (arr[i] + arr[i-1])。
  6. 输出变量num,即第一个路灯和最后一个路灯之间无法照明的区间长度和。

你可能感兴趣的:(java,算法,数据结构)