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

本文介绍了一种算法,用于解决数组中元素唯一化的问题,通过排序和增量操作确保每个元素都比前一个元素至少大一,从而实现数组元素的唯一化。详细解析了算法的思路和步骤,并提供了C++代码实现。
162

被折叠的 条评论
为什么被折叠?



