题解: 最高位加1 遇9进1,只能为单数不能为
arr[9,9] ->[9,10] 错误
arr [9,9] ->[1,0,0] 正确
解:
class Solution {
public int[] plusOne(int[] digits) {
if(digits[digits.length - 1] != 9) {
digits[digits.length-1] = digits[digits.length-1] + 1;
return digits;
}
//全部为9整体向前进1
int arr [] = new int[digits.length + 1];
boolean isNew = true ;
for(int i = 0 ; i < digits.length; i++) {
if(digits[i] != 9) {
isNew = false ;
}
}
if(isNew) {
for(int i = 0 ; i < digits.length; i++) {
arr[i] = 0 ;
}
arr[0] = 1 ;
return arr ;
} else {
// 补1
int max = digits.length - 1 ;
int result = digits[max] + 1;
while(true) {
if(result == 10) {
digits[max] = 0;
digits[max - 1 ] = digits[max - 1] + 1;
if(digits[max - 1] < 10) {
break;
}
result = digits[max - 1];
}
max -- ;
}
return digits;
}
}
}