代码超时,本地测试结果都正常:
class Solution:
def minIncrementForUnique(self, A:[]) -> int:
B = []
num = 0
for i in range (len(A)):
if A[i] not in B:
B.append(A[i])
else:
k = A[i]
while k in B:
k = k+1
num = num + 1
B.append(k)
return num
test = Solution()
input = [3,2,1,2,1,7]
print(test.minIncrementForUnique(input))
优化的话可以对数组进行排序后再处理,换一种方法:
class Solution:
def minIncrementForUnique(self, A: 'List[int]') -> 'int':
n=len(A)
if 0==n:
return 0
A.sort()
res=0
for i in range(1,n):
if A[i-1]>=A[i]:
dif=A[i-1]-A[i]+1
A[i]=A[i-1]+1
res+=dif
return res