题目链接:简易版之最短距离
题意就是:ACBOY从某个朋友家里出发到每一个朋友的距离之和。
然而每次都是从一开始那个朋友那里出发的。
做法很简单,每一个点遍历一下就OK了,时间复杂度是O(n^2),照样AC。
下面代码:
import java.util.Scanner;
public class Main{
private static Scanner scanner;
public static void main(String[] args) {
scanner = new Scanner(System.in);
int n = scanner .nextInt();
while(n-->0){
int friendNum = scanner.nextInt();//朋友的个数
int[] friends = new int[friendNum];//坐标
for (int i = 0; i < friends.length; i++) {
friends[i] = scanner.nextInt();
}
int minDis = Integer.MAX_VALUE;//最小距离
for (int i = 0; i < friends.length; i++) {
int dis = 0;
for (int j = 0; j < friends.length; j++) {
dis += Math.abs(friends[j]-friends[i]);
}
if(dis<minDis){
minDis = dis;
}
}
System.out.println(minDis);
}
}
}