在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
一开始的时候,我考虑的是分成商店数的奇偶性来确定货仓的位置,但其实不管是偶数还是奇数,只要把货仓放在最中间,那就是最近的。
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; int sum = 0; //arr[i]表示第i个位置上的离0的距离 for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } Arrays.sort(arr); int add = n/2; for (int i = 0; i < n; i++) { sum = sum + Math.abs(arr[add]-arr[i]); } System.out.println(sum); }