网易实习生笔试,错误分析
终于到周末啦!小易走在市区的街道上准备找朋友聚会,突然服务器发来警报,小易需要立即回公司修复这个紧急bug。假设市区是一个无限大的区域,每条街道假设坐标是(X,Y),小易当前在(0,0)街道,办公室在(gx,gy)街道上。小易周围有多个出租车打车点,小易赶去办公室有两种选择,一种就是走路去公司,另外一种就是走到一个出租车打车点,然后从打车点的位置坐出租车去公司。每次移动到相邻的街道(横向或者纵向)走路将会花费walkTime时间,打车将花费taxiTime时间。小易需要尽快赶到公司去,现在小易想知道他最快需要花费多少时间去公司。
import java.util.ArrayList;
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String filter = sc.nextLine();
int[] totalTime = new int[num];
ArrayList<int[]> position = new
ArrayList<>();
for (int i = 0; i < num ; i++) {
String s = sc.nextLine();
int[] sArray = toIntArray(s);
position.add(sArray);
}
String office = sc.nextLine();
int[] officeArray = toIntArray(office);
String cost = sc.nextLine();
int[] costArray = toIntArray(cost);
for (int i = 0; i < position.size() ; i++) {
int waltTime = 0;
int taxiTime = 0;
int[] taxiPosition = position.get(i);
waltTime += costArray[0] * (Math.abs(taxiPosition[0])
+ Math.abs(taxiPosition[1]));
int officeToTaxiDistance = Math.abs(taxiPosition[0] -
officeArray[0]) + Math.abs(taxiPosition[1] - officeArray[1]);
taxiTime += costArray[1] * officeToTaxiDistance;
totalTime[i] = waltTime + taxiTime;
}
int outputTime = getMin(totalTime);
System.out.println(outputTime);
}
public static int[] toIntArray(String array){
int[] intArray =new int[array.length()];
String[] newArray = array.split(" ");
for (int i = 0; i < newArray.length ; i++) {
intArray[i] = Integer.parseInt(newArray[i]);
}
return intArray;
}
public static int getMin(int[] array){
int minIndex = 0;
for (int j = 1; j < array.length; j++) {
if(array[minIndex] > array[j]){
minIndex = j;
}
}
return array[minIndex];
}
}
您的代码已保存
请检查是否存在数组越界等非法访问情况
case通过率为0.00%
请检查是否存在数组越界等非法访问情况
case通过率为0.00%
急求,谢谢