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;
}
相关推荐
北顾笙98019 分钟前
day35-数据结构力扣
数据结构·算法·leetcode
代码中介商35 分钟前
C语言操作符深度解析:从基础到高级应用
c语言·开发语言
cpp_250142 分钟前
P2249 【深基13.例1】查找
数据结构·c++·算法·题解·二分·洛谷
三品吉他手会点灯1 小时前
C语言学习笔记 - 18.C编程预备计算机专业知识 - 什么是变量
c语言·开发语言·笔记·学习
ulias2122 小时前
leetcode热题 - 4
算法·leetcode·职场和发展
圣保罗的大教堂2 小时前
leetcode 1559. 二维网格图中探测环 中等
leetcode
胡童嘉2 小时前
C语言考研《谭浩强C语言》教材第一章理论+实践汇总
c语言·开发语言·考研
_日拱一卒3 小时前
LeetCode:148排序链表
算法·leetcode·链表
cen__y3 小时前
Linux06(进程)
linux·运维·服务器·c语言·ubuntu
生信研究猿3 小时前
leetcode 78.子集
算法·leetcode·深度优先