LeetCode 66 加一(C语言实现)
目录
题目描述 (简单难度)
解题思路
1.普通情况:当最后一位是[0,8]时,简单在该位上加一。
2.特殊情况:当一位为9时,该位变成0。第一位为9时,该位也变成了0。
2.1当第一位变为0时,需要进位。malloc新的数组,需要比digitalSize多一位。第一位是1,其余位是0。
C的代码实现
int* plusOne(int* digits, int digitsSize, int* returnSize){
int i,j;
int *special=(int*)malloc(sizeof(int)*(digitsSize+1));
for(i=digitsSize-1;i>=0;i--){
if(digits[i]<9){
digits[i]+=1;
break;
} else {
digits[i]=0;
}
if(digits[0]==0){
for(j=1;j<digitsSize+1;j++){
special[j]=0;
}
special[0]=1;
*returnSize=digitsSize+1;
return special;
}
}
*returnSize=digitsSize;
return digits;
}
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码