Java解决方案
public int minIncrementForUnique(int[] A) {
Arrays.sort(A);
int count = 0;
for(int i=1; i<A.length; i++){
if(A[i]<=A[i-1]){
count+=A[i-1]+1;
A[i]=A[i]+1;
}
}
return count;}
实际上,我们不需要将计数加一。我们可以简单地执行以下操作:
public int minIncrementForUnique(int[] A) {
Arrays.sort(A);
int count = 0;
for(int i=1; i<A.length; i++){
if(A[i]<=A[i-1]){
count+=A[i-1]+1-A[i];
A[i]=A[i-1]+1;
}
}
return count;}
时间为O(Nlog(N))。
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。