题目看不出遇 9 需要进位,也就是 [9] 要变成 [1,0]
主要分三种情况:
- 末位不为 9 时,直接加 1 返回
- 末位为 9 时,需要从后向前一直找到不为 9 的数字,将其加 1,其后面数字全部置为 0
- 全部为 9 时,直接重新创建当前数组长度 + 1 的新数组,首位置为 1
可以使用数组转数字再转数组的方式,但可能会有整数溢出的情况func plusOne(digits []int) []int {n := len(digits)for i := n - 1; i >= 0; i-- {if digits[i] != 9 {digits[i]++for j := i + 1; j < n; j++ {digits[j] = 0}return digits}}digits = make([]int, n+1)digits[0] = 1return digits}
