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;
}