很簡單的問題,但是一遍寫通過,還是要求基本功比較扎實。注意進位的處理。
Input Output
[0] | [1] | ||
[1] | [2] | ||
[9] | [1,0] | ||
[1,0] | [1,1] | ||
[9,9] | [1,0,0] | ||
[1,2,3] | [1,2,4] | ||
[9,9,9] | [1,0,0,0] | ||
[8,9,9,9] | [9,0,0,0] | ||
[1,0,0,0,0] | [1,0,0,0,1] | ||
[9,8,7,6,5,4,3,2,1,0] | [9,8,7,6,5,4,3,2,1,1] |
代碼如下:
public class Solution {
public int[] plusOne(int[] digits) {
int extra = 1;
for(int i=digits.length-1;i>=0;--i){
int t = digits[i]+extra;
if(t>=10){
extra = 1;
digits[i] = t-10;
}
else if(extra!=0){
extra = 0;
digits[i] = t;
break;
}
}
if(extra>0){
int[] newDigits = new int[digits.length+1];
newDigits[0] = extra;
System.arraycopy(digits,0,newDigits,1,digits.length);
return newDigits;
}
return digits;
}
}
public int[] plusOne(int[] digits) {
int extra = 1;
for(int i=digits.length-1;i>=0;--i){
int t = digits[i]+extra;
if(t>=10){
extra = 1;
digits[i] = t-10;
}
else if(extra!=0){
extra = 0;
digits[i] = t;
break;
}
}
if(extra>0){
int[] newDigits = new int[digits.length+1];
newDigits[0] = extra;
System.arraycopy(digits,0,newDigits,1,digits.length);
return newDigits;
}
return digits;
}
}