leetcode-66-加一-javascript实现

1.题目描述:

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

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

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

eg:

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

2.解题思路:

(1).说是数组的加1,其实是类似于我们的数学加法进位问题

(2)要考虑三个点:

---》最后一位数字为9的话,则该位进位,变为0;

---》如果最后一位数字不为9的话,则该位数字++;

---》如果不满足上面两点,则是这种情况9999,这样的话,首位为1,后四位为0;

3.上代码:

function addOne(arr)
{
    var len = arr.length;
    for(let i =len-1;i>=0;i--)
    {
        if(arr[i]===9)
        {
            arr[i] = 0;
        }else{
            arr[i]++;
            return arr;
        }
    }
    arr[0] = 1;
    arr.forEach(element => {
        element  =0;
    });
    arr.push(0);
    //两种添加方式
    // for(let i=1;i<=len;i++)
    // {
    //     arr[i] = 0;
    // }
    return arr;
}

PS:测试代码:

var a = [4,3,2,1]
var b = [9,9,9,9];
console.log(addOne(a));
console.log("b:"+addOne(b));

4.vscode的测试结果:

 

猜你喜欢

转载自blog.csdn.net/qq_42099097/article/details/107476233