1
class Solution {
2
public int[] plusOne(int[] digits) {
3

4
int len = digits.length;
5

6
// last digit not a 9, just add 1 to it
7
if (digits[len - 1] != 9) {
8
digits[len - 1] = digits[len - 1] + 1;
9
return digits;
10
}
11

12
// last digit is a 9, find the closest digit that is not a 9
13
else {
14
int i = len - 1;
15
while (i >= 0 && digits[i] == 9) {
16
digits[i] = 0;
17
i--;
18
}
19
if (i == -1) {
20
int[] ret = new int[len + 1];
21
for (int j = 0; j < len; j++) {
22
ret[j + 1] = digits[j];
23
}
24
ret[0] = 1;
25
return ret;
26
}
27
digits[i] = digits[i] + 1;
28
}
29

30
return digits;
31
}
32
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0