1class Solution {2public int[] plusOne(int[] digits) {34int len = digits.length;56// last digit not a 9, just add 1 to it7if (digits[len - 1] != 9) {8digits[len - 1] = digits[len - 1] + 1;9return digits;10}1112// last digit is a 9, find the closest digit that is not a 913else {14int i = len - 1;15while (i >= 0 && digits[i] == 9) {16digits[i] = 0;17i--;18}19if (i == -1) {20int[] ret = new int[len + 1];21for (int j = 0; j < len; j++) {22ret[j + 1] = digits[j];23}24ret[0] = 1;25return ret;26}27digits[i] = digits[i] + 1;28}2930return digits;31}32}