加一

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

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

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

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function (digits) {
  // 数组转字符串
  let s = digits.join('')
  // 字符串转数字加一 Bigint
  let num = BigInt(s) + BigInt(1)
  // 转回数组
  return num.toString().split('')
};
var plusOne = function(digits) {
    const len = digits.length;
    // 遍历数组
    for(let i = len - 1; i >= 0; i--) {
        digits[i]++;
        digits[i] %= 10;
        // 如果加一后的值没有进位返回结果
        if(digits[i]!=0)
            return digits;
    }
    // 如果全都是9的情况
    digits = [...Array(len + 1)].map(_=>0);;
    digits[0] = 1;
    return digits;
};
贡献者: huxiguo