The digits are stored such that the most significant digit is at the head of the list.
注意:数字不可以以0开头,所以我们要考虑最后进位的问题。如果超过原来的数组长度,得重新分配一个数组
Java code:
public int[] plusOne(int[] digits) {
int add = 1;
int len = digits.length;
for(int i = len - 1; add > 0 && i >= 0; i--){
digits[i] = (digits[i] + add)%10;
add = (digits[i] + add)/10;
}
if( add > 0 ){
int[] result = new int[len + 1];
result[0] = add;
for(int i = 1; i <= len; i++){
result[i] = digits[i-1];
}
return result;
}
return digits;
}
No comments:
Post a Comment