题目描述
Given a number represented as an array of digits, plus one to the number.
分析
digits数组代表一个大整数,将这个大整数加1.如果末尾位上的数小于9,直接将该位加1.如果末尾位置上的数大于9,将该位置0,产生进位。
public int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >= 0; i--) {
if (digits[i] < 9) {
digits[i]++;
break;
} else {
digits[i] = 0;
}
}
if (digits[0] == 0) {
int[] newDigits = new int[digits.length + 1];
newDigits[0] = 1;
for (int i = 1; i <= digits.length; i++) {
newDigits[i] = digits[i - 1];
}
return newDigits;
} else {
return digits;
}
}