长沙做一个网站要多少钱,河南app定制开发,景观设计效果图,海北高端网站建设哪家好题目 在一条笔直的公路上安装了N个路灯#xff0c;从位置0开始安装#xff0c;路灯之间间距固定为100米。 每个路灯都有自己的照明半径#xff0c;请计算第一个路灯和最后一个路灯之间#xff0c;无法照明的区间的长度和。输入描述 第一行为一个数N#xff0c;表示路灯个数…题目 在一条笔直的公路上安装了N个路灯从位置0开始安装路灯之间间距固定为100米。 每个路灯都有自己的照明半径请计算第一个路灯和最后一个路灯之间无法照明的区间的长度和。输入描述 第一行为一个数N表示路灯个数1N100000 第二行为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*100nums[i]] 如果当前路灯照射范围的起始值比上一个路灯照射范围的结尾值还要大那么说明这一部分距离无法覆盖当前start-上一个end 最后累加未覆盖距离输出即可 题解
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查看当前专栏更新的所有题目。