加一


/**
 * @param {number[]} digits
 * @return {number[]}
 */

當我們對數組 digits 加一時,我們只需要關注{digits}digits 的末尾出現了多少個 99 即可。我們可以考慮如下的三種情況:

如果 {digits}digits 的末尾沒有 99,例如 [1, 2, 3],那么我們直接將末尾的數加一,得到 [1, 2, 4]並返回;

如果 {digits}digits 的末尾有若干個 99,例如 [1, 2, 3, 9, 9],那么我們只需要找出從末尾開始的第一個不為 99 的元素,即 33,將該元素加一,得到 [1, 2, 4, 9, 9]。隨后將末尾的 9 全部置零,得到 [1,2,4,0,0] 並返回。

如果 {digits}digits 的所有元素都是 99,例如 [9, 9, 9, 9, 9],那么答案為 [1, 0, 0, 0, 0, 0]。我們只需要構造一個長度比 {digits}digits 多 1 的新數組,將首元素置為 1,其余元素置為 0 即可

var plusOne = function(digits) {

    let len = digits.length
    for(let i=len-1;i>=0;--i){
        if(digits[i] !== 9){
            ++digits[i]
            for(let j=i+1;j<len;++j){
                digits[j] = 0
            }
            return digits
        }
    }
    let ans = new Array(len+1).fill(0)
    ans[0] = 1
    return ans
};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM