二十一块石头 2021-12-10 00:08 采纳率: 100%
浏览 56
已结题

力扣加一题写完后输出很奇怪,求解

想问一下大家它的输出为什么是[ 0, 9, '-1': NaN ]啊


var plusOne = function(digits) {
    for(let i = digits.length-1;i >= 0;i--){ //循环,使数组最后一位等于9,且前一位不等于9时,数组输出完成+1的目的
        if((digits[i] == 9) && (digits[i-1] != 9)){
            digits[i] = 0;
            digits[i-1] = digits[i-1] + 1;
            return digits;
        }
    }
    for(let i = digits.length-1;i >= 0;i--){ //循环,使数组最后一位不等于9时,直接加1,数组输出完成+1的目的
        if(digits[i] != 9){
            digits[i] = digits[i] + 1;
            return digits;
        }
    }
    for(let i = 0;i < digits.length;i++){ //如果前两项条件都不符合,那么此时数组的每一位都是9,所以我们使数组每一位都变为0
       digits[i] = 0;
    }
    digits.unshift(1); //在数组前面加入元素1,使它完成加1的目的
    return digits;
};
console.log(plusOne([9,9]));

  • 写回答

1条回答 默认 最新

  • 技术专家团-Bamboo 2021-12-10 01:05
    关注

    不需要那么麻烦,参考下我下面的代码

    var plusOne = function(digits) {
        let r = 0;
        for(let i=digits.length - 1;i>=0;i--){
            digits[i]+=1;   
            r =parseInt(digits[i]/10);
            digits[i]%=10;
            if(r==0){
                break;
            }
        }
        if(r==1){
            digits.unshift(1);
        }
        return digits;
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月18日
  • 已采纳回答 12月10日
  • 创建了问题 12月10日

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算