昨日当年
你一双澄澈眼眸 便使我颠沛中毕生富有
LeetCode 66. 加一

看到这题我第一时间想到的是把数组转为数字+1再转成数组,这样就js的一些现成的方法就搞定了,但仔细想想这样根本学不到什么东西,只是在重复用一些方法而已

/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {

    for (let i=digits.length-1; i>=0; i--){
        digits[i]++
        digits[i] = digits[i] % 10
        if (digits[i] !== 0) return digits
    }

    let newarr = Array.from(new Array(digits.length+1), x => 0)

    newarr[0] = 1

    return newarr
    
};

最后写成这样了~

这里用到一个 Array.from() 方法,该方法从一个数组或可迭代对象中复制一个新数组

console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]


相关日志