本着解题的思路,这题是好解决的,但是如果实际场景的话,首先sort为首的就不该首选,当然可能sort的比非sort还要快(逃
func minIncrementForUnique(A []int) int { sort.Ints(A) var nums int for i:= 0 ;i<len(A)-1;i++ { if A[i] >= A[i+1] { nums += (A[i]-A[i+1] +1) A[i+1] += (A[i]-A[i+1] +1) } } return nums }
func minIncrementForUnique(A []int) int { if len(A) == 0 { return 0 } sort.Ints(A) res, value := 0, A[0] for i := 1; i < len(A); i++ { if A[i] <= value { value++ res += value - A[i] } else { value = A[i] } } return res }
安能辨我是雌雄。
end