C语言 | Leetcode C语言题解之第66题加一

题目:

题解:

cpp 复制代码
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* plusOne(int* digits, int digitsSize, int* returnSize){

    for(int i = digitsSize - 1; i >= 0; --i){
        digits[i] = digits[i] + 1;//最后元素+1判断是不是10
        //如果当前元素不为10,直接返回数组
        if(digits[i] != 10){
            *returnSize = digitsSize;
            return digits;
        }
        //第一个元素不为10,后面元素均为10的情况
        if(digits[i] == 10)
            digits[i] = 0;
    }
    //元素全为9开辟新数组
    int* ans = malloc(sizeof(int) * (digitsSize + 1));
    memset(ans, 0, sizeof(int) * (digitsSize + 1));//全部置0
    ans[0] = 1;
    *returnSize = digitsSize + 1;
    return ans;
}
相关推荐
倦王3 分钟前
力扣日刷复习:
算法·leetcode·职场和发展
py有趣7 分钟前
力扣热门100题之二叉树的中序遍历
算法·leetcode·职场和发展
我不是懒洋洋13 分钟前
【数据结构】单链表专题(详细代码及配图)
c语言·数据结构·c++·算法·visual studio
daxi15029 分钟前
C语言从入门到进阶——第18讲:内存函数
c语言·开发语言·算法
小辉同志34 分钟前
17. 电话号码的字母组合
c++·算法·leetcode·深度优先
迷糊小鬼39 分钟前
Button matrix(矩阵按钮) (lv_buttonmatrix)
c语言·开发语言·前端·ui·矩阵
MimCyan42 分钟前
LeetCode hot 100 (8-11,自用2026.04.03)
leetcode
Q741_1471 小时前
每日一题 力扣 3661. 可以被机器人摧毁的最大墙壁数目 双指针 动态规划 C++ 题解
c++·算法·leetcode·机器人·动态规划
alphaTao1 小时前
LeetCode 每日一题 2026/3/30-2026/4/5
算法·leetcode·职场和发展
hoiii1871 小时前
104键PS2接口标准键盘C语言驱动程序
c语言·fpga开发·计算机外设