String gw = sc.nextLine();
String xdq = sc.nextLine();
String[] scArray = gw.split(" ");
String[] xdqArray = xdq.split(" ");
List<Integer> gwList = new ArrayList<>(); // // 工位
for(String s : scArray) {
gwList.add(Integer.parseInt(s));
}
List<Integer> xdqList = new ArrayList<>(); // // 消毒器
for(String s : xdqArray) {
xdqList.add(Integer.parseInt(s));
}
int gwNum = gwList.size();
int xdqNum = xdqList.size();
int minRange = Integer.MAX_VALUE; // 最小工作半径
int range = 0;
Collections.sort(gwList);
Collections.sort(xdqList);
int[] leftBorders = new int[xdqNum];
int[] rightBorders = new int[xdqNum];
for(int i = 0; i < xdqNum; ++i){
if(xdqList.get(i) < gwList.get(0)) {
leftBorders[i] = 0;
}else {
leftBorders[i] = gwList.get(0);
}
}
for(int i = 0; i < xdqNum; ++i){
if(xdqList.get(i) > gwList.get(gwNum-1)) {
rightBorders[i] = 0;
}else {
rightBorders[i] = gwList.get(gwNum-1);
}
}
int xdqPosition;
int leftBorder ;
int rightBorder;
int leftRange ;
int rightRange ;
int xdqRange;
for(int i = 0; i < xdqNum; ++i){
xdqPosition = xdqList.get(i);
leftBorder = leftBorders[i];
rightBorder = rightBorders[i];
leftRange = Math.abs(xdqPosition - leftBorder);
rightRange = Math.abs(rightBorder - xdqPosition);
xdqRange = Math.max(leftRange, rightRange);
minRange = Math.min(minRange, xdqRange);
}
System.out.println(minRange);
}
全部评论
(5) 回帖