牛客网---2016---网易路灯

来源:互联网 发布:ubuntu设置中文输入法 编辑:程序博客网 时间:2024/05/16 10:45

恩,没错,最近的笔记可能都要有点小粉红,啧啧,我偷偷买了试纸,但是没有买油桃(害羞),都是第一次,我tmd有点小紧张,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,一切好突然,丢图么,当然不丢,我自己的我自己看就好,丢马赛克好了,啧啧,好大一坨马赛克啊。

这里写图片描述

题目:
一条长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.50

解析:
1 . 在我看来,这个题目的实质就是解决最大间隔和两边点到最近灯的距离相比较。
解题所需函数:
代码:

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        // 多个while循环,没毛病        while (scan.hasNext()) {            // 确定灯数目和街道长度            int n = scan.nextInt();            int l = scan.nextInt();            // 创建a数组,用于记录灯的位置            int[] a = new int[n];            // 用于记录最大值,啧啧,最小值是最大值的一般,应该不难懂            int max = 0;            for(int i = 0;i<n;i++){                a[i] = scan.nextInt();            }            // 对数组a进行排序,没毛病,从小到大进行排序            sort(a);            // 初始位置star,没毛病            int star = 0;            for(int i = 0;i<n;i++){                int d = a[i]-star;                star = a[i];                // 简单if语句,取最大值                max = d>max?d:max;            }            // 正常来讲应该检查n+1个空间,所以呢,这里加一条,就这么牛逼            if(a[n-1]!=l){                int r = l-a[n-1];                max = r*2>max?r*2:max;             }            // 输出结果,啧啧,记得保留两位小数,所以是%.2f            String result = String.format("%.2f",max/2.00);            System.out.println(result);        }    }        // 排序函数,根据排序结果,明显后面的大,当不需要改动的时候,那么跳出循环,返回结果    public static void sort(int[] a){        // 必然典型冒泡排序,双for循环,用boolean来控制减少循环        for(int i = 0;i<a.length-1;i++){            boolean flag = true;            for(int j = 0;j<a.length-1-i;j++){                if(a[j]>a[j+1]){                    int temp = a[j];                    a[j] = a[j+1];                    a[j+1] = temp;                    flag = false;                }            }            if(flag)                return;        }    }}
原创粉丝点击