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
分享
二维码
< <上一篇
下一篇>>