题目
给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。
示例:
输入:
[1,2,3]
输出:
3
解释:
只需要3次移动(注意每次移动会增加两个元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
代码模板:
class Solution {
public int minMoves(int[] nums) {
}
}
分析
这道题的思路就是找到最小值,求每个数和最小值的差。那么可以用总和-最小值*nums.length来解决。一个循环里面就可以把求和以及最小值搞定,然后就可以求出该题的答案了。
解答
class Solution {
public int minMoves(int[] nums) {
int result = 0;
if(nums.length ==1){
return result;
}
int min = Integer.MAX_VALUE;
for(int i = 0;i<nums.length;i++){
result = result +nums[i];
if(min > nums[i]){
min = nums[i];
}
}
return result - min *nums.length;
}
}

博客围绕 LeetCode 题目展开,给定非空整数数组,要让所有元素相等,每次可使 n - 1 个元素加 1,求最小移动次数。分析得出思路是找最小值,用总和减去最小值与数组长度的乘积,在一个循环里完成求和与找最小值来求解。
-java&spm=1001.2101.3001.5002&articleId=88697651&d=1&t=3&u=d2a6cc5be36b4e4aac30e8f9e6318150)
369

被折叠的 条评论
为什么被折叠?



