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;
}
相关推荐
珊瑚里的鱼2 分钟前
【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ
开发语言·c++·笔记·算法·leetcode
使者大牙3 分钟前
【C语言基础语法入门】通过简单实例快速掌握C语言核心概念
c语言·开发语言
alphaTao1 小时前
LeetCode 每日一题 2025/5/12-2025/5/18
算法·leetcode
半青年2 小时前
Qt读取Excel文件的技术实现与最佳实践
c语言·c++·python·qt·c#·excel
exe4523 小时前
力扣每日一题5-18
java·算法·leetcode
阳洞洞3 小时前
leetcode 74. Search a 2D Matrix
leetcode·二分查找
YuforiaCode3 小时前
LeetCode 219.存在重复元素 II
算法·leetcode·职场和发展
小雅痞3 小时前
[Java][Leetcode middle] 151. 反转字符串中的单词
java·leetcode
CodeQingqing3 小时前
C语言练手磨时间
c语言·数据结构·算法
勇闯逆流河12 小时前
【数据结构】堆
c语言·数据结构·算法