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;
}
相关推荐
kingmax542120081 小时前
《数据结构C语言:单向链表-链表基本操作(尾插法建表、插入)》15分钟试讲教案【模版】
c语言·数据结构·链表
LYFlied3 小时前
【每日算法】LeetCode 19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
mit6.8243 小时前
[box64] 解决ARM64运行x86_64跨平台兼容性 | 机器架构配置
c语言
喵了meme3 小时前
C语言实战6
c语言·开发语言
Logic1014 小时前
C程序设计(第五版)谭浩强 第七章课后习题优化算法与核心步骤解析
c语言·visualstudio·程序员·学习笔记·软件开发·编程基础·c语言入门
喵了meme4 小时前
Linux学习日记21:读写锁
linux·c语言·学习
努力学算法的蒟蒻4 小时前
day35(12.16)——leetcode面试经典150
算法·leetcode·面试
风中月隐4 小时前
C语言中以坐标的方式图解“字母金字塔”的绘制
c语言·开发语言·算法·字母金子塔·坐标图解法
LYFlied5 小时前
【每日算法】LeetCode 234. 回文链表详解
算法·leetcode·链表
NeDon5 小时前
[OJ]数据结构:移除链表元素
c语言·数据结构·算法·链表