假设我们有一个称为nums的整数列表。现在假设有一个操作,我们在列表中选择一些整数子集,然后将它们全部加1。我们必须找到所需操作的最少数量,以使列表中的所有值彼此相等。
因此,如果输入类似于[1,3,5],则输出将为4。
为了解决这个问题,我们将遵循以下步骤-
如果nums的大小等于1,则-
返回0
ret:= 0
maxVal:= -inf
minVal:= inf
对于初始化i:= 0,当i <nums大小时,更新(将i增加1),执行-
maxVal:= maxVal和nums [i]的最大值
minVal:= minVal和nums [i]的最小值
返回maxVal-minVal
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(vector<int> &nums) {
if (nums.size() == 1)
return 0;
int ret = 0;
int maxVal = INT_MIN;
int minVal = INT_MAX;
for (int i = 0; i < nums.size(); i++) {
maxVal = max(maxVal, nums[i]);
minVal = min(minVal, nums[i]);
}
return maxVal - minVal;
}
};
main() {
Solution ob;
vector<int> v = {1,3,5};
cout << (ob.solve(v));
}{1,3,5}输出结果
4