路灯问题-排序之后相邻元素的最大差值

路灯

http://www.nowcoder.com/questionTerminal/62cdf520b9d94616b6644ac03a0306ff

基本思路:排序之后求相邻元素的差值的最大值即可。
个人排雷:
1: 端点 0,l 需要单独考虑,
2:保留两位小数:String.format("%.2f,ret);
3:空间换时间,时间复杂度应该可以降到o(n),但是数据量n<1000,排序应该够用了。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            long l=sc.nextLong();
            long[] nums=new long[n];
            for(int i=0;i<n;i++){
                nums[i]=sc.nextLong();
            }
            Arrays.sort(nums);
            long gap=nums[1]-nums[0];
            for(int i=1;i<n;i++){
               gap=Math.max(gap,nums[i]-nums[i-1]);
            }
            gap=Math.max(gap,nums[0]*2);
            gap=Math.max(gap,(l-nums[n-1])*2);
            System.out.println(String.format("%.2f",gap/2.0));


        }
    }
}
全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务