66. 加一

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

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

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]

输出: [1,2,4]

解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]

输出: [4,3,2,2]

解释: 输入数组表示数字 4321。

 1/**
2 * @param {number[]} digits
3 * @return {number[]}
4 */

5var plusOne = function(digits) {
6    var lastItem = digits[digits.length - 1]
7    // 最后一位不是 9
8    if(lastItem !== 9) {
9        digits[digits.length - 1] = lastItem + 1
10    }
11    // 最后一位是 9
12    else {
13        // 全是 9
14        if(new Set(digits).size === 1) {
15            for(var i=0; i<digits.length; i++) {
16                digits[i] = 0
17            }
18            digits.unshift(1)
19        }
20        // 有不是 9
21        else {
22            for(var i=digits.length-1; i>=0; i--) {
23                // 找到不是 9 的
24                if(digits[i] !== 9) {
25                digits[i] = digits[i] + 1
26                break
27            }
28                digits[i] = 0
29            }
30        }
31    }   
32    return digits
33}
原文地址:https://www.cnblogs.com/rencoo/p/9740985.html