看答案寫的,我也寫了一個算法,還算能夠,不過除了點小問題,沒改,我就不貼了。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