leetcode-945

本着解题的思路,这题是好解决的,但是如果实际场景的话,首先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

猜你喜欢

转载自www.cnblogs.com/CherryTab/p/12549466.html