当前位置: 首页 > news >正文

【华为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
最后累加未覆盖距离输出即可

题解

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),查看当前专栏更新的所有题目。

http://www.lryc.cn/news/255676.html

相关文章:

  • 附录1、vuepress中的Markdown语法
  • 【matlab程序】matlab画螺旋图|旋转图
  • 计算三位数每位上数字的和
  • Gavin Wood:财库保守主义偏离了初心,应探索 Fellowship 等更有效的资金部署机制
  • Linux: sudo: unable to execute /opt/sbin/adm: No such file or directory
  • 一文详解Java单元测试Junit
  • 进制 + 原码,反码,补码
  • 2024年网络安全行业前景和技术自学
  • cocos 关于多个摄像机,动态添加节点的显示问题,需要动态修改layer。(跟随摄像机滚动)(神坑官网也不说明一下)
  • freeswitch编译mod_av支持webrtc MCU通话
  • K8s 入门指南(一):单节点集群环境搭建
  • python socket编程6 - 使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的例子
  • centos上安装并持久化配置LVS
  • 多线程并发Ping脚本
  • SpringBoot Seata 死锁问题排查
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑两阶段鲁棒优化配置的多微网合作博弈》
  • Redis常见类型
  • 深入了解数据库锁:类型、应用和最佳实践
  • python3.5安装教程及环境配置,python3.7.2安装与配置
  • ubuntu安装tomcat并配置前端项目
  • GeoPandas初体验:它是什么,我用它展示一下shp矢量数据
  • Python-滑雪大冒险【附源码】
  • Linux---日志管理
  • Java高级技术-单元测试
  • springboot集成邮箱验证功能
  • HarmonyOS应用程序框架——UIAbility实操
  • 数实融合!低代码推动工业数字化转型走“深”向“实”
  • OpenGL学习资料
  • 字符串指令集
  • 行云海CMS SQL注入漏洞复现