Cho mảng nums. Một phép toán: chọn một tập con và tăng tất cả lên 1. Tìm số phép toán tối thiểu để tất cả phần tử bằng nhau.
Ví dụ: [1,3,5] → 4.
Nhận xét: Số phép toán bằng max(nums) - min(nums). Vì mỗi phép toán tăng tập con lên 1, ta chỉ cần nâng các phần tử nhỏ lên bằng phần tử lớn nhất.
Ví dụ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(vector<int>& nums) {
if (nums.size() == 1) return 0;
int maxVal = INT_MIN, minVal = INT_MAX;
for (int x : nums) {
maxVal = max(maxVal, x);
minVal = min(minVal, x);
}
return maxVal - minVal;
}
};
int main() {
Solution ob;
vector<int> v = {1,3,5};
cout << (ob.solve(v));
}
Đầu vào
{1,3,5}
Đầu ra
4