题目链接
解题思路
- 模拟十进制进位加法
- 注意处理有进位的情况
Golang
解法一
1
2
3
4
5
6
7
8
9
10
11
12
13
14func plusOne(digits []int) []int {
digitslength := len(digits) //获取数组长度
for i := digitslength - 1;i >= 0;i-- {
if digits[i] < 9 { //判断数组尾部是否小于9
digits[i]++
return digits
}
//有进位的情况
digits[i] = 0 //数组最后一位置为0
res := []int{1}
res = append(res,digits...)
return res
}
}解法二
1
2
3
4
5
6
7
8
9
10
11
12
13func plusOne(digits []int) []int {
digits = append(digits,1)
for i := len(digits) - 1;i > 0;i-- {
digits[i] = digits[i] + digits[i-1]
digits[i-1] = digits[i]/10 //取除数
digits[i] %= 10 //取余数
}
if digits[0] == 0 {
return digits[1:]
} else {
return digits
}
}