1. 程式人生 > >第六題:加一

第六題:加一

問題描述

給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。

最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。

你可以假設除了整數 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) {
    
    var lastNineIndex = digits.length - 1;

    do{
        if(digits[lastNineIndex] != 9){
            digits[lastNineIndex] = digits[lastNineIndex] + 1;
            return digits;
        }else{
            digits[lastNineIndex] = 0;
            lastNineIndex--;
        }
    }while(lastNineIndex >= 0);
    
    if(lastNineIndex == -1){
        digits.unshift(1);
    }
    return digits;
};

執行結果

在這裡插入圖片描述