[leetcode]66. Plus One
阿新 • • 發佈:2019-01-10
MY DUMMY SOLUTION
class Solution { public int[] plusOne(int[] digits) { int c=0; digits[digits.length-1]=digits[digits.length-1]+1; if(digits[digits.length-1]>=10){ c=1; digits[digits.length-1]%=10; } for(int i=digits.length-2;i>=0;i--){ digits[i]=digits[i]+c; if(digits[i]>=10){ c=1; digits[i]=digits[i]%10; }else{ c=0; } } //如果最後還要進位,只能開一個新的陣列,newdigits[0]=1,後面都賦值過來 int newdigits[]=new int[digits.length+1]; newdigits[0]=c; if(c==1){ for(int i=digits.length;i>=1;i--){ newdigits[i]=digits[i-1]; } return newdigits; } return digits; } }
GENIUS solution
public int[] plusOne(int[] digits) { int n = digits.length; for(int i=n-1; i>=0; i--) { if(digits[i] < 9) { digits[i]++; return digits; } digits[i] = 0; } int[] newNumber = new int [n+1]; newNumber[0] = 1; return newNumber; }