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;
}
相关推荐
wifi chicken31 分钟前
数组遍历求值,行遍历和列遍历谁更快
c语言·数据结构·算法
南棱笑笑生2 小时前
20251224给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时确认ssh服务【内置dropbear】
linux·c语言·ssh·rockchip
晨晖24 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied4 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
sin_hielo5 小时前
leetcode 3074
数据结构·算法·leetcode
程序员-King.5 小时前
day124—二分查找—最小化数组中的最大值(LeetCode-2439)
算法·leetcode·二分查找
阿华hhh5 小时前
Linux系统编程(网络udp)
linux·服务器·c语言·网络·网络协议·udp
superman超哥6 小时前
仓颉类型别名的使用方法深度解析
c语言·开发语言·c++·python·仓颉
是Yu欸6 小时前
从Ascend C算子开发视角看CANN的“软硬协同”
c语言·开发语言·云原生·昇腾·ascend·cann·开放社区
黎雁·泠崖6 小时前
C 语言字符串进阶:strcpy/strcat/strcmp 精讲
c语言·开发语言