Cho mảng nums, mỗi phép toán tăng n-1 phần tử lên 1. Tìm số phép tối thiểu để tất cả phần tử bằng nhau.
Quan sát: Tăng n-1 phần tử = giảm 1 phần tử còn lại. Do đó số phép = tổng (nums[i] - min).
Ví dụ: [3,2,3,4] → min=2 → (3-2)+(2-2)+(3-2)+(4-2)=4.
Ví dụ triển khai C++
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int minMoves(vector<int>& nums) {
int mn = *min_element(nums.begin(), nums.end());
long long ans = 0;
for (int x : nums) ans += x - mn;
return ans;
}
};
int main() {
Solution ob;
vector<int> v = {3,2,3,4};
cout << ob.minMoves(v); // 4
return 0;
}
Đầu vào / Đầu ra
Input: {3,2,3,4}
Output: 4