加一

38 阅读1分钟

思路:最后一位+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
}