【LeetCode】【esay】【66】加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。

/**

 * @param {number[]} digits

 * @return {number[]}

 */

var plusOne = function(digits) {

    // digits[digits.length-1]++;

    // if(){

 

    // }

    let s = digits.toString().replace(/,/g,"");

    // console.log(s);

    // console.log(s.length);

    // console.log("72850912953667328437957747494701117400".localeCompare("6145390195186705500"));

    // parseFloat

    // let num = parseFloat(s);

    let num;

    let numS = new Array();

    let rs = new Array();

    if((s.length<17)||((s.length==17)

    &&(s.localeCompare("27466443773796500"))<1)

    ||((s.length==19)&&(s.localeCompare("6092137628069415100"))<1)){

        

        num = new Number(s);

        num++;

        numS = num.toString();

    }else{

        // console.log("============");

        let tt = digits[digits.length-1]+1;

        // console.log(tt);

        if(tt>9){

            digits[digits.length-1] = 0;

            // digits[digits.length-2]++;

            digits[digits.length-2] = digits[digits.length-2]+1;

            // console.log("~~~"+digits[digits.length-2]);

            for(let kk = digits.length-2;kk>0;kk--){

                // console.log(kk,digits[kk]);

                if(digits[kk]>9){

                    digits[kk]=0;

                    digits[kk-1]++;

                }else{

                    if(kk!=(digits.length-2)){

 

                        digits[kk]++;

                    }

                    break;

                }

            }

 

            if(digits[0]>9){

                // console.log("$$$");

                rs=new Array();

                // // rs.push(1);

                // console.log(rs);

                // digits[0] = 0;

                // // rs.push(digits);

                // // rs.

                // rs.concat(1,digits);

                let sss = digits[0].toString();

                rs.push(parseInt(sss.substr(0,1)));

                rs.push(parseInt(sss.substr(1,1)));

                // console.log(rs);

                for(let ii = 1;ii<digits.length;ii++){

                    rs.push(digits[ii]);

                    if(ii > digits.length-2){

 

                        // console.log(rs);

                    }

                }

                return rs;

            }

        }else{

            digits[digits.length-1] = tt;

        }

        rs = digits;

    }

    for(let i=0;i<numS.length;i++){

        rs.push(numS.substr(i,1));

    }

    return rs;

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值