假设我们有一个称为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