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;
}
相关推荐
宇木灵3 分钟前
C语言基础-五、数组
c语言·开发语言·学习·算法
宇木灵44 分钟前
C语言基础-三、流程控制语句
java·c语言·前端
iAkuya1 小时前
(leetcode)力扣100 73柱状图中最大的矩形(单调栈)
算法·leetcode·职场和发展
王老师青少年编程2 小时前
2020年信奥赛C++提高组csp-s初赛真题及答案解析(阅读程序第1题)
c++·题解·真题·初赛·信奥赛·csp-s·提高组
逆境不可逃2 小时前
【春节篇】LeetCode 热题 100 之 238.除了自身以外数组的乘积
数据结构·算法·leetcode
StandbyTime2 小时前
C语言学习-菜鸟教程C经典100例-练习79
c语言
alexwang2113 小时前
B2007 A + B 问题 题解
c++·算法·题解·洛谷
Zik----4 小时前
Leetcode2 —— 链表两数相加
数据结构·c++·leetcode·链表·蓝桥杯
踩坑记录5 小时前
leetcode hot100 46. 全排列 medium 递归回溯 dfs
leetcode·深度优先
EmbedLinX5 小时前
C语言标准库stdlib.h
c语言·开发语言·笔记