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;
}
相关推荐
普通攻击往后拉12 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
Nebula嵌入式12 小时前
【C语言】09-深入解析main函数
linux·c语言·开发语言·嵌入式
天空'之城14 小时前
C 语言工业级通用组件手写 23:卡尔曼滤波(简易版)
c语言·卡尔曼滤波·嵌入式算法·工业级组件
888CC++14 小时前
C语言与C++的区别:从面向过程到面向对象
java·c语言·c++
库玛西17 小时前
C++ 运行时多态 :核心总结与原理图解
c语言·c++·笔记
橘子汽水16819 小时前
Leetcode 230,98:二叉搜索树中第K小的元素,验证二叉搜索树
算法·leetcode·职场和发展
天空'之城19 小时前
C 语言工业级通用组件手写 21:限幅消抖滤波
c语言·嵌入式算法·工业级组件·限幅消抖滤波
Aurorar0rua19 小时前
CS50 x 2024 Notes Algorithms - 07
c语言·开发语言·学习方法
神罚天下ET19 小时前
典型arm位单片机启动流程(从上电到main.c)
c语言·arm开发·单片机
普通攻击往后拉21 小时前
Leetcode 448. 找到所有数组中消失的数字
算法·leetcode·职场和发展