Skip to content
On this page

66. 加一

原题链接:LeetCode 66. 加一

题目描述

给定一个表示 大整数 的整数数组 digits,其中 digits[i] 是整数的第 i 位数字。这些数字按从左到右,从最高位到最低位排列。这个大整数不包含任何前导 0

将大整数加 1,并返回结果的数字数组。

示例 1:

**输入:**digits = [1,2,3] 输出:[1,2,4] **解释:**输入数组表示数字 123。 加 1 后得到 123 + 1 = 124。 因此,结果应该是 [1,2,4]。

示例 2:

**输入:**digits = [4,3,2,1] 输出:[4,3,2,2] **解释:**输入数组表示数字 4321。 加 1 后得到 4321 + 1 = 4322。 因此,结果应该是 [4,3,2,2]。

示例 3:

**输入:**digits = [9] 输出:[1,0] **解释:**输入数组表示数字 9。 加 1 得到了 9 + 1 = 10。 因此,结果应该是 [1,0]。

提示:

- `1 <= digits.length <= 100`

- `0 <= digits[i] <= 9`

- `digits` 不包含任何前导 `0`。

难度: Easy


题解代码

javascript
/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    
    // 没有超过安全数可以用这个方法
    // return String(Number(digits.join('')) + 1).split('')
    
    let plus = (digits, index) => {
        if (digits[index] === 9) {
            digits[index] = 0
            if (!index) {
                digits.unshift(1)
            } else {
                plus(digits, index - 1)
            }
            
        } else {
            digits[index] += 1
        }
    }

    plus(digits, digits.length - 1)

    return digits
};

技术文档集合