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;
}
相关推荐
W.D.小糊涂19 分钟前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
C羊驼2 小时前
C语言:两天打鱼,三天晒网
c语言·经验分享·笔记·算法·青少年编程
We་ct2 小时前
LeetCode 148. 排序链表:归并排序详解
前端·数据结构·算法·leetcode·链表·typescript·排序算法
本喵是FW3 小时前
C语言手记1
java·c语言·算法
x_xbx5 小时前
LeetCode:2. 两数相加
算法·leetcode·职场和发展
_日拱一卒5 小时前
LeetCode:最长连续序列
算法·leetcode·职场和发展
重生之后端学习5 小时前
287. 寻找重复数
数据结构·算法·leetcode·深度优先·图论
炘爚5 小时前
C语言(const的指针定义的区别)
c语言
Z9fish7 小时前
sse哈工大C语言编程练习47
c语言·数据结构·算法
本喵是FW7 小时前
C语言手记2
c语言·开发语言