Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
思路:判断最后一位是不是等于9,若等于9则末位置零,然后判断进位到哪一位,根据相应的情况修改数组,
若进位到最高位还需要重新开辟数组存放结果;
如果最后一位小于9,则只需要修改最后一位即可
public class Solution {
public int[] plusOne(int[] digits) {
int n = digits.length;
if (digits[n-1] < 9) {
digits[n-1] += 1;
return digits;
}
else if (n == 1) {
int [] result = {1,0};
return result;
}
else {
digits[n-1] = 0;
int i = n-2;
while (i >= 0 ) {
if ( digits[i] == 9) {
digits[i] = 0;
i--;
}
else break;
}
if ( i >= 0) {
digits[i] += 1;
return digits;
}
else {
int [] result = new int[n+1];
result[0] = 1;
while (i > 0 ) {
digits[i] = 0;
}
return result;
}
}
}
}