这道题的做法是贪心思想,要保证我们的数组是递增的顺序,从第一个数字开始,下一个数字和上一个数字+1进行比较,取大值,比如1, 5, 4, 8
,经过贪心的处理应该得到1, 5, 6, 8
。
func minOperations(nums []int) int {
var res int
pre := nums[0] - 1
for _, v := range nums {
pre = max(pre+1, v)
res += pre - v
}
return res
}
func max(a, b int) int {
if b > a {
return b
}
return a
}