题意:对一个含有n个元素的数组,每次只能改动n-1 个元素,求最少改动多少次能够使得所有元素相同。
思路:每次改动,将最小的元素改成和最大的元素一样。可以得到改动的总次数是所有元素与最小元素的差之和。
class Solution {
public:
int minMoves(vector<int>& nums) {
int minn = INT_MAX;
int p = 0;
for(int i = 0; i < nums.size(); ++ i) {
if(minn > nums[i]) {
minn = nums[i];
p = i;
}
}
int n = 0;
for(int i = 0; i < nums.size(); ++ i) {
n += (nums[i] - minn);
}
return n;
}
};