题目:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
算法:
func plusOne(digits []int) []int {
carry := 1
for i := len(digits) - 1; i >= 0 ; i -- {
digits[i] = digits[i] + carry
carry = digits[i] / 10
digits[i] = digits[i] % 10
if carry == 0 {
break
}
}
if carry == 1 {
ans := make([]int, len(digits) + 1)
ans[0] = carry
for i := range digits {
ans[i + 1] = digits[i]
}
return ans
}
return digits
}