Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đồng nhất giá trị mảng trong C++


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