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;
}
相关推荐
czy87874751 小时前
C语言实现观察者模式
c语言·观察者模式
代码雕刻家2 小时前
1.4.课设实验-数据结构-单链表-文教文化用品品牌2.0
c语言·数据结构
侯小啾2 小时前
【22】C语言 - 二维数组详解
c语言·数据结构·算法
qq_479875432 小时前
Linux time function in C/C++【2】
linux·c语言·c++
yuuki2332333 小时前
【数据结构】双向链表的实现
c语言·数据结构·后端
ol木子李lo4 小时前
Doxygen入门指南:从注释到自动文档
c语言·c++·windows·编辑器·visual studio code·visual studio·doxygen
代码雕刻家4 小时前
1.6.课设实验-数据结构-栈、队列-银行叫号系统2.0
c语言·数据结构
yq14682860904 小时前
C (统计二进制中“1“的个数)
c语言·开发语言·算法
被AI抢饭碗的人4 小时前
算法题(254):灾后重建
算法·leetcode·职场和发展
是苏浙5 小时前
零基础入门C语言之数据在内存中的存储
c语言·开发语言