设置一个进位值carry
,初始carry
的值为1,从数组的最后开始向前遍历遍历
数组当前遍历到的元素加carry
,新的carry
是这个和除以10,数组当前位置新的值是这个和对10求余
遍历完整个数组以后:
如果carry
等于1,那么就在数组的最前面加一个元素1
如果carry不等于1,那么就直接返回原来的数组
func plusOne(digits []int) []int { carry := 1 for i := len(digits) - 1; i >= 0; i-- { carry, digits[i] = (digits[i]+carry)/10, (digits[i]+carry)%10 } if carry == 1 { digits = append([]int{1}, digits...) } return digits } ?
原文:https://www.cnblogs.com/gyyyl/p/13666250.html