思路:
最初的思路是每次将最小的n-1个元素加1,以将元素配平的思路来看,将n-1个元素加1相当于将最大值减1,其中最大值与最小值之间的差值变化一致。
总的需要调整的次数等于将所有元素都减少到等于元素最小值。
题解:
class Solution {
public:
int minMoves(vector<int>& nums) {
int minnum= 2e9;
int count=0;
for(int i=0;i<nums.size();i++){
minnum=min(minnum,nums[i]);
}
for(int i=0;i<nums.size();i++){
count += nums[i]-minnum;
}
return count;
}
};
官方题解c++:
class Solution {
public:
int minMoves(vector<int>& nums) {
int minNum = *min_element(nums.begin(),nums.end());
int res = 0;
for (int num : nums) {
res += num - minNum;
}
return res;
}
};
作者:力扣官方题解
链接:https://leetcode.cn/problems/minimum-moves-to-equal-array-elements/solutions/1054870/zui-xiao-cao-zuo-ci-shu-shi-shu-zu-yuan-3meg3/
来源:力扣(LeetCode)