简单题。进位加法,或者数九就可以了。
public class Solution {
public int[] plusOne(int[] digits) {
// Start typing your Java solution below
// DO NOT write main() function
int[] ret = digits;
int len = digits.length;
if (len == 0) return ret;
int i = len - 1;
while (i >= 0 && digits[i] == 9) {
i--;
}
if ( i == -1) {
ret = new int[len+1];
ret[0] = 1;
}
else {
digits[i]++;
for (int j = i+1; j < len; j++) {
digits[j] = 0;
}
}
return ret;
}
}
Python3
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
result = digits[:]
i = len(digits) - 1
carry = 1
while i >= 0:
if carry == 0:
break
result[i] += carry
if result[i] >= 10:
carry = 1
result[i] -= 10
else:
carry = 0
i -= 1
if carry == 1:
result.insert(0, 1)
return result