不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

Leetcode-66-Plus One | 加一

题目链接

plus one

解题思路

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

Golang

  • 解法一

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    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
    }
    }
  • 解法二

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    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
    }
    }
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!