66.加一

37 阅读1分钟

题目:
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 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
}