题目描述:
题解:
参考https://blog.csdn.net/fuxuemingzhu/article/details/84495213
<1>对输入数组A进行排序。 <2>对排序后的A一次遍历,res记录加1的次数,tmp记录当前与之前元素不重复的数字。下一个数字必须大于tmp才保证不重复。 需要注意的地方: 如果A[i]<=tmp,A[i]需要加到tmp+1,才与之前数字不重复,此时tmp更新为tmp+1 如果A[i]本来就大于tmp,则直接更新tmp为A[i]。即tmp始终保存最后一位不同的数字。 def minIncrementForUnique(self, A): lenA = len(A) if lenA==0: return 0 A.sort() res = 0 tmp = A[0] for i in range(1,lenA): if A[i]<=tmp: tmp = tmp+1 res = res+tmp-A[i] else: tmp = A[i] return res
结果: