题目
解析
其实刚拿到这道题的时候毫无头绪,想着怎么才能让程序知道应该让那几个加1,后来查看了说明之后才发现这其实是道数学问题,倒过来思考即可。
每次移动使n-1个元素加一,直到最大值,倒过来就是每次可使一个元素减一,直到最小值
代码
class Solution {
public int minMoves(int[] nums) {
Arrays.sort(nums);
int sum = 0;
for (int i = 1; i < nums.length; i++) {
sum += (nums[i] - nums[0]);
}
return sum;
}
}
网友评论