原本是打算将数组拼成一个数字, 然后+1后再分拆为数组, 结果会出现数字太大, 超出最大值.
只能用遍历数组的方式去实现. 从数组的最后一位开始 +1, 超过9则前进一位进行+1操作, 直到+1后没超过9, 然后中止, 导出结果.
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
let i = digits.length - 1
let isCarry = true
while (i > -1 && isCarry) {
digits[i] = digits[i] + 1
isCarry = digits[i] > 9
if (isCarry) {
digits[i] = 0
i = i - 1
}
}
if (i === -1 && isCarry) {
digits.unshift(1)
}
return digits
};