给你一个长度为 n
的整数数组 nums
,返回使所有数组元素相等需要的最少移动数。
在一步操作中,你可以使数组中的一个元素加 1
或者减 1
。
解:利用双指针
class Solution {
public int minMoves2(int[] nums) {
Arrays.sort(nums);
int left = 0;
int right = nums.length - 1;
int res = 0;
while(left < right){
res += (nums[right] - nums[left]);
--right;
++left;
}
return res;
}
}
执行用时:3 ms, 在所有 Java 提交中击败了95.00%的用户
内存消耗:42 MB, 在所有 Java 提交中击败了45.91%的用户