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;
}
相关推荐
passer__jw7671 小时前
【LeetCode】【算法】3. 无重复字符的最长子串
算法·leetcode
passer__jw7671 小时前
【LeetCode】【算法】21. 合并两个有序链表
算法·leetcode·链表
__AtYou__3 小时前
Golang | Leetcode Golang题解之第557题反转字符串中的单词III
leetcode·golang·题解
lb36363636363 小时前
介绍一下数组(c基础)(详细版)
c语言
2401_858286113 小时前
L7.【LeetCode笔记】相交链表
笔记·leetcode·链表
一丝晨光4 小时前
编译器、IDE对C/C++新标准的支持
c语言·开发语言·c++·ide·msvc·visual studio·gcc
_OLi_4 小时前
力扣 LeetCode 704. 二分查找(Day1:数组)
算法·leetcode·职场和发展
passer__jw7675 小时前
【LeetCode】【算法】11. 盛最多水的容器
算法·leetcode
Wils0nEdwards5 小时前
Leetcode 罗马数字转整数
算法·leetcode·职场和发展
执笔者5486 小时前
C语言:函数栈帧的创建与销毁
c语言