Question:
Given a number represented as an array of digits, plus one to the number.
public class Solution {
public int[] plusOne(int[] digits) {
int needadd = 0;
int len = digits.length - 1;
do {
if (digits[len] == 9) {
digits[len] = 0;
needadd = 1;
} else {
digits[len] = digits[len] + 1;
needadd = 0;
}
--len;
}while (len >= 0 && needadd == 1);
if (needadd == 1) {
int[] newdigits = new int[digits.length + 1];
newdigits[0] = 1;
for (int i = 1; i < newdigits.length - 1; i++) {
newdigits[i] = digits[i - 1];
}
return newdigits;
}
return digits;
}
}