在C ++中使列表值相等

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