以写作调身心

Leetcode-66-Plus One

题目链接

plus one

解题思路

  • 模拟十进制进位加法
  • 注意处理有进位的情况

Golang

  • 解法一
func 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
	}
}
  • 解法二
func 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
	}
}

评论