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;
}
相关推荐
德先生&赛先生8 小时前
LeetCode-542. 01 矩阵
算法·leetcode·矩阵
tju新生代魔迷8 小时前
C语言宏的实现作业
c语言·开发语言
小莞尔9 小时前
【51单片机】【protues仿真】基于51单片机宠物投食器系统
c语言·stm32·单片机·嵌入式硬件·51单片机·proteus
躲着人群10 小时前
次短路&&P2865 [USACO06NOV] Roadblocks G题解
c语言·数据结构·c++·算法·dijkstra·次短路
小欣加油11 小时前
leetcode 1493 删掉一个元素以后全为1的最长子数组
c++·算法·leetcode
qq_4798754315 小时前
设置接收超时(SO_RCVTIMEO)
c语言·算法
麦麦在写代码16 小时前
内存操作函数
c语言
YuTaoShao17 小时前
【LeetCode 热题 100】152. 乘积最大子数组——(解法一)递推
java·算法·leetcode·职场和发展
用户61204149221318 小时前
C语言做的区块链模拟系统(极简版)
c语言·后端·敏捷开发
草莓熊Lotso18 小时前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day12
c语言·开发语言·c++·刷题