66. Plus One

看答案寫的,我也寫了一個算法,還算能夠,不過除了點小問題,沒改,我就不貼了。git

我看到這個答案,我感受人家的算法是怎麼寫出來的,爲何這麼精緻,厲害厲害,反正我是菜算法

class Solution {
    public int[] plusOne(int[] digits) {
        
        int leng = digits.length;
        for(int i = leng - 1;i >= 0;i--){
           
           if(digits[i] < 9){
               digits[i]++;
               return digits;
           }
            
           digits[i] = 0;
       }
        
        int[] res = new int[leng + 1];
        res[0] = 1;
        return res;
        
    }
}數組

總結:這題我最開始都沒理解,查了幾個博客才知道什麼意思,int [] a = {1,2,3};至關於int b = 123;就是把整數的每一位都存到數據裏面,而後返回int b = 123 + 1的數組,返回int [] c = {1,2,4}; 博客

1.從後往前遍歷各位置,當小於9的時候,加1不會對前一位有影響,因此直接返回就數組就能夠。it

2.當等於9的時候,該位賦0,若是該位置不是最後一位,則判斷下一位,由於小於9的都會自增,因此不用考慮進位問題了,若是是最後一位,則條出循環,建立新數組,並在index = 0位置賦值1,返回該數組。io

這個算法我最喜歡的就是if(digits[i] < 9){digits[i]++;return digits;},真是太厲害了,怎麼相出來的呢,我根本沒有想到,能夠寫的這麼巧妙,我好菜啊
               
               
           class

相關文章
相關標籤/搜索