Leetcode刷題java之66. 加一(一天一道編程題之第十一天)

執行結果:

通過

顯示詳情

執行用時 :0 ms, 在所有 Java 提交中擊敗了100.00% 的用戶

內存消耗 :35.2 MB, 在所有 Java 提交中擊敗了44.05%的用戶

題目:

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

最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。

你可以假設除了整數 0 之外,這個整數不會以零開頭。

示例 1:

輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入數組表示數字 123。


示例 2:

輸入: [4,3,2,1]
輸出: [4,3,2,2]
解釋: 輸入數組表示數字 4321。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/plus-one
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

思路:

有當前值還有進位,另外還要考慮數組擴張的情況。

代碼:

class Solution {
    public int[] plusOne(int[] digits) {
        int len=digits.length-1;
        int jinwei=1;
        while(jinwei==1)
        {
            digits[len]+=jinwei;
            jinwei=digits[len]/10;
            digits[len]=digits[len]%10;
            if(len==0&&jinwei==1)
            {
                int[] result=new int[digits.length+1];
                System.arraycopy(digits,0,result,1,digits.length);
                result[0]=1;
                return result;
            }
            len--;
        }
        return digits;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章