- 结果
- 分析
简单逻辑题,小编的思路是,先对原来的数组进行排序,然后遍历一遍数组,当A[i - 1] >= A[i]时,此时,需要对A[i]进行加1操作,第一次小编是一次次的加,结果超时了,后来思考了一下,发现,当上面的判断成立时,执行加1操作的次数是A[i - 1] - A[i] + 1。
- 代码
class Solution {
public:
int minIncrementForUnique(vector<int>& A) {
sort(A.begin(), A.end());
int size = A.size();
int num = 0;
for(int i = 1; i < size; i++){
if(A[i - 1] >= A[i]){
num = num + A[i - 1] - A[i] + 1;
A[i] = A[i - 1] + 1;
}
}
return num;
}
};