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;
}
};