Skip to content

Latest commit

 

History

History
25 lines (24 loc) · 639 Bytes

plus-one.md

File metadata and controls

25 lines (24 loc) · 639 Bytes
/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    const len = digits.length;
    for (let i = len - 1; i >= 0; i--) {
        let num = digits[i] + 1;
        if (num % 10 === 0) {
            digits[i] = 0; // 需要进位
        } else {
            digits[i] = num;  // 无需进位,结束
            break;
        }
    }

    const isAllZero = digits.every(i => i===0); // 全进位,需要增加一位情况
    if (isAllZero) {
        digits.unshift(1)
    }
    return digits;
};

考虑是否需要进位,以及刚好全是进位,需要增加一位的情况