给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
class Solution {
public int recursion(int[] digits, int index, int count){
if(digits[index] == 9){
if(index == 0){
return count += 1;
}else{
count += 1;
return recursion(digits, index-1, count);
}
}else{
return count;
}
}
public int[] plusOne(int[] digits) {
int len = digits.length;
int count = recursion(digits, len-1, 0);
if(count!=0){
if(digits[0] == 9){
int[] result = new int[len+1];
for(int i=0; i<result.length; i++){
if(i==0){
result[i] = 1;
}else{
result[i] = 0;
}
}
return result;
}else{
for(int i=len-1; i>=len-count; i--){
digits[i] =0;
}
digits[len-1-count]+=1;
return digits;
}
}else{
digits[len-1] +=1;
return digits;
}
}
}