加一


/**  * @param {number[]} digits  * @return {number[]}  */

当我们对数组 digits 加一时,我们只需要关注{digits}digits 的末尾出现了多少个 99 即可。我们可以考虑如下的三种情况:

如果 {digits}digits 的末尾没有 99,例如 [1, 2, 3],那么我们直接将末尾的数加一,得到 [1, 2, 4]并返回;

如果 {digits}digits 的末尾有若干个 99,例如 [1, 2, 3, 9, 9],那么我们只需要找出从末尾开始的第一个不为 99 的元素,即 33,将该元素加一,得到 [1, 2, 4, 9, 9]。随后将末尾的 9 全部置零,得到 [1,2,4,0,0] 并返回。

如果 {digits}digits 的所有元素都是 99,例如 [9, 9, 9, 9, 9],那么答案为 [1, 0, 0, 0, 0, 0]。我们只需要构造一个长度比 {digits}digits 多 1 的新数组,将首元素置为 1,其余元素置为 0 即可

var plusOne = function(digits) {

    let len = digits.length     for(let i=len-1;i>=0;--i){         if(digits[i] !== 9){             ++digits[i]             for(let j=i+1;j

相关