nums라고 하는 정수 목록이 있다고 가정합니다. 이제 목록에서 정수의 일부 하위 집합을 선택하고 모두 1씩 증가시키는 작업을 가정합니다. 목록의 모든 값을 서로 같게 하려면 필요한 작업의 최소 수를 찾아야 합니다.
따라서 입력이 [1,3,5]와 같으면 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
숫자의 크기가 1과 같으면 -
-
0 반환
-
-
ret :=0
-
maxVal :=-inf
-
minVal :=inf
-
initialize i :=0의 경우, i
-
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