解题思路
题目刚开始没看懂,所以根据示例才明白了。就像是数学中末尾加1。如果加一后变成了10,那么需要向前进1。
理解了题意后,就是准备撸代码。可以判断最后一位是否为9,如果不是9,那么加1后不会变成10,直接返回结果。如果最后1位是9,循环,判断有几个9。如果一直到下标为0时都是9,那么数组中结果就是类似10000。如果不是全是9,那么就不是9的那一加1就好了。
代码
var plusOne = function(digits) {
const len = digits.length;
if(digits[len - 1] !== 9){
digits[len - 1] += 1;
}else{
let i = len - 1;
while(digits[i] === 9){
digits[i] = 0;
i--;
}
if(i === -1){
digits.unshift(1);
}else{
digits[i] += 1;
}
}
return digits;
};
const digits = [9,9];
console.log(plusOne(digits));