LeetCode刷題: 【945】使數組唯一的最小增量

1. 題目

在這裏插入圖片描述

2. 思路

首先對數組排序。
只允許加操作,在按任何次序使元素增加的過程中,保持最少次數的結果是一樣的。
只需讓排好序的數組中每個元素都至少比前一個元素大一即可,差值即爲增加次數。

3. 代碼

class Solution {
public:
    int minIncrementForUnique(vector<int>& A) {
        sort(A.begin(), A.end());
        int ans = 0;
        for(int i = 1; i < A.size(); i++){
            if(A[i] <= A[i-1]){
                ans += A[i-1] + 1 - A[i];
                A[i] = A[i-1] + 1;
            }
        }
        return ans;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章