题目分析:暴力方法会超时,所以遍历一次,并记录当前的最大值,如果小于最大值,则需要增加到最大值加一。 class Solution: def subsetsWithDup(self, A): # a = collections.Counter(A) # d1 = sorted(a.items(), key=lambda d: d[0], reverse=False) # d1 = dict(d1) # count = 0 # for i in range(100000): # li = list(d1.keys()) # if i >= len(li): # return count,d1 # key = li[i] # if d1[key]<=1: # continue # else: # if key+1 in d1: # d1[key+1] += d1[key]-1 # count += d1[key]-1 # d1[key] = 1 # else: # d1[key+1] = d1[key]-1 # count += d1[key]-1 # d1[key] = 1 N = len(A) if N == 0: return 0 A.sort() pre = A[0] res = 0 for i in range(1, N): if A[i] <= pre: res += pre-A[i]+1 pre += 1 else: pre = A[i] return res
945. Minimum Increment to Make Array Unique——array
最新推荐文章于 2020-09-08 13:27:12 发布