加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 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;
};