题目
给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。
在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。
样例
思路
- 要想移动最少步骤,取
中位数
即可
AC代码
class Solution {
public int minMoves2(int[] nums) {
Arrays.sort(nums);
int step = 0;
int x = nums[nums.length / 2];
for (int i = 0; i < nums.length; i++) {
step += Math.abs(nums[i] - x);
}
return step;
}
}