路灯算法
程序员文章站
2022-05-18 10:46:38
...
思路
路灯算法的时候我们要想到这个路的首端和末端是否有路灯。如果两端都有路灯,那么我们只需要去找出在排列中相邻的两个最大数的差值;若是没有,则进行比较即可。
下面是代码:
/**
*
*/
package 基础题;
/**
* @author zx天才
* @version 2020年9月12日
* @paramMain.java
* @Description:
*/
import java.util.Scanner;
import java.util.*;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int len = sc.nextInt();
int[] spot = new int[n];
for(int i=0;i<n;i++)
spot[i] = sc.nextInt();
Arrays.sort(spot);
double maxdistance = Double.MIN_VALUE;
for(int i=1;i<n;i++){
if(spot[i]-spot[i-1]>maxdistance)
maxdistance = spot[i]-spot[i-1];
}
double left = spot[0];
double right = len - spot[n-1];
if(left>right&&left>maxdistance/2){
System.out.printf("%.2f",left);
}
else if(right>=left&&right>maxdistance/2){
System.out.printf("%.2f",right);
}
else{
System.out.printf("%.2f",maxdistance/2);
}
}
}
下一篇: 消息队列