/**
* Note: The returned array must be malloced, assume caller calls free().
*/
void reverse(int* a,int n){
int head=0,tail=n-1;
while(head<=tail){
int t=a[head];
a[head]=a[tail];
a[tail]=t;
head++;
tail--;
}
}
void f(int* digits,int digitsSize,int* returnSize,int* array,int index,int tag){
if(index>digitsSize) return;
if(index==digitsSize&&tag==0){
(*returnSize)=digitsSize;
return;
}
if(index==digitsSize && tag==1){
array[index]=1;
(*returnSize)=digitsSize+1;
return;
}
if(digits[index]==9&&tag==1){
tag=1;
array[index]=0;
}else if (tag==0){
array[index]=digits[index];
}else if(tag==1){
array[index]=digits[index]+1;
tag=0;
}
f(digits,digitsSize,returnSize,array,index+1,tag);
}
int* plusOne(int* digits, int digitsSize, int* returnSize) {
reverse(digits,digitsSize);
*returnSize=0;
int* array=(int*)malloc(sizeof(int)*(digitsSize+1));
f(digits,digitsSize,returnSize,array,0,1);
reverse(array,*returnSize);
return array;
}
结果:
标签:index,加一,digitsSize,returnSize,int,tag,66,array From: https://www.cnblogs.com/llllmz/p/18076275