Leetcode P462 java使用排序方法解决
ideas
首先我们要对我们的数组进行排序,然后找打中位数,因为找到中位数才能找到移动最少次数让每个元素相等。
Arrays.sort(nums);
int mid = nums[nums.length/2];
接下来遍历数组就可以了计算每个元素与中间值的绝对值累加起来就可以了
for (int i = 0; i < nums.length; i++) {
res += Math.abs(mid- nums[i]);
}
code
class Solution {
public int minMoves2(int[] nums) {
Arrays.sort(nums);
int mid = nums[nums.length/2];
int res =0;
for (int i = 0; i < nums.length; i++) {
res += Math.abs(mid- nums[i]);
}
return res;
}
}