网易-路灯

题目描述

一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要是这个d最小,请找到这个最小的d。

输入描述:

每组数据第一行两个整数n和l(n大于0小于等于1000,l小于等于1000000000大于0)。第二行有n个整数(均大于等于0小于等于l),为每盏灯的坐标,多个路灯可以在同一点。

输出描述:

输出答案,保留两位小数。

输入例子:

7 1515 5 3 7 9 14 0

输出例子:

2.5

思路:

找到相距最远的两个路灯之间的距离即可。对接收到的路灯坐标进行排序,依次计算当前路灯与前一路灯的距离,记录下最大值。别忘了第一座路灯与0的距离还有最后一座路灯与l的距离。

    import java.util.*;

    public class Main{
    
    public static void main(String[] args){
        Scanner in=new Scanner(System.in);
        
        while(in.hasNext()) {
            String[] str = in.nextLine().split(" ");
            int n = Integer.parseInt(str[0]);
            int l = Integer.parseInt(str[1]);
            int[] lamp = new int[n];
            int maxDist = 0;
            String[] allLamp = in.nextLine().split(" ");
            for (int i = 0; i < n; i++) {
                lamp[i] = Integer.parseInt(allLamp[i]);
            }
            Arrays.sort(lamp);
            for (int i = 1; i < n; i++) {
                maxDist = Math.max(maxDist, lamp[i] - lamp[i - 1]);
            }
            maxDist = Math.max(maxDist, 2 * Math.max(lamp[0], l - lamp[n - 1]));
            System.out.println(String.format("%.2f", maxDist / 2.0));
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 关于诊断X线机准直器的作用,错误的是()。 (6.0 分) A. 显示照射野 B. 显示中心线 C. 屏蔽多...
    我们村我最帅阅读 13,724评论 0 5
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,352评论 0 33
  • 记忆中的故乡 遥远而陌生 却又似在心里 亲切非常 远离家乡廿余载 心中却一直魂牵梦萦 似乎从未离开 家乡的水哟~是...
    潇湘青女阅读 3,502评论 30 17
  • 有很多人其实对古典音乐是感兴趣的,只是因为门槛过高的问题而望而却步。其实,只要静下心来听就好。不必试图去理解或者“...
    漫步云端的wendy阅读 4,264评论 1 6
  • 每天的生活在三点一线的反复着。这样的生活已经开始了有近两年光景。工作后的我,在经历大学时的分手后保持着单身。每天的...
    知足就好阅读 806评论 0 0