Here is the solution:
function minIncrementForUnique(nums)
sort nums ascending
moves := 0
for i from 1 to length - 1
if nums[i] <= nums[i-1] then
need := nums[i-1] + 1
moves := moves + (need - nums[i])
nums[i] := need
return moves
Time: . Space: if sorting in place.
After sorting, duplicates are adjacent. Fix each one by bumping it just above its predecessor.