Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.
Example:
Input:
[1,2,3]
Output:
3
Explanation:
Only three moves are needed (remember each move increments two elements):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
方法一:
class Solution {
public:
int minMoves(vector<int>& nums) {
sort(nums.begin(),nums.end());
int count = 0;
int sum = 0;
int len = nums.size();
for(int i = 1; i < len; i++){
count = nums[i] - nums[0];
sum += count;
}
return sum;
}
};
class Solution {
public:
int minMoves(vector<int>& nums) {
int min = nums[0];
int sum = nums[0];
int len = nums.size();
for(int i = 1; i < len; i++){
sum += nums[i];
if(nums[i] < min)
min = nums[i];
}
return sum - len * min;
}
};