描述
给出一个数组,每次对n - 1个数加1,问经过多少次所有的数相等
解决
对n - 1个数加1等价于对1个数减1,答案就是所有数的和减去数组长度乘以最小数的积
class Solution {
public:
int minMoves(vector<int>& nums) {
int sum = 0, min_val = INT_MAX;
for (auto val : nums)
{
sum += val;
if (val < min_val)
{
min_val = val;
}
}
return sum - nums.size() * min_val;
}
};
本文介绍了一种高效的算法,用于计算使数组中所有元素相等所需的最少操作次数。通过对n-1个数加1的操作等价转化为对1个数减1,快速得出所需步骤数。具体实现方法为计算数组内所有数的总和减去数组长度与最小数乘积的差。
350

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



