思路:最后一位+1,>9 则只加余数,前一位+整数
func plusOne(digits []int) []int {
i := len(digits) - 1
//进位
head := 1
//for i >= 0 && head != 0 {
for head != 0 {
//注意,会有[9]变成[1,0]这种情况。处理特殊情况
if i < 0 {
return append([]int{head}, digits...)
}
//注意,用两个变量,否则会相互影响
//head = (digits[i] + head) / 10
//digits[i] = (digits[i] +head) % 10
digits[i],head = (digits[i] + head) % 10,(digits[i] + head) / 10
i--
}
return digits
}