Re: [闲聊] 每日leetcode

楼主: DJYOSHITAKA (Evans)   2024-06-14 09:19:52
好久没有在平日早上写了
剩我是公司的狗了
945. Minimum Increment to Make Array Unique
思路:
先排列
如果遇到某一区间是nums[j]-nums[i]会小于j-i
就代表这个区间必须透过数个move去撑开成[nums[i], nums[i]+1, nums[i]+2, ...]
若nums[j]-nums[i] >= j-i
代表可以reset 重新开始一个新的区间
def minIncrementForUnique(self, nums: List[int]) -> int:
nums.sort()
start_i, target_diff, ans = 0, 1, 0
for i in range(1,len(nums)):
if (nums[i]-nums[start_i]) < (i-start_i):
ans += (nums[start_i]+target_diff-nums[i])
target_diff += 1
else:
target_diff = 1
start_i = i
作者: JIWP (JIWP)   2024-06-14 09:21:00
大师
作者: JenniferLope (ㄚ)   2024-06-14 09:22:00
大师
作者: NCKUEECS (小惠我婆)   2024-06-14 09:36:00
在公司写=公司是你的狗
作者: sustainer123 (caster)   2024-06-14 09:42:00
我以后也想在公司刷题
作者: digua (地瓜)   2024-06-14 09:42:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com