在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