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;
}
相关推荐
norlan_jame3 小时前
C-PHY与D-PHY差异
c语言·开发语言
琢磨先生David3 小时前
Day1:基础入门·两数之和(LeetCode 1)
数据结构·算法·leetcode
czy87874753 小时前
除了结构体之外,C语言中还有哪些其他方式可以模拟C++的面向对象编程特性
c语言
m0_531237174 小时前
C语言-数组练习进阶
c语言·开发语言·算法
超级大福宝4 小时前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
Charlie_lll4 小时前
力扣解题-88. 合并两个有序数组
后端·算法·leetcode
菜鸡儿齐5 小时前
leetcode-最小栈
java·算法·leetcode
Frostnova丶6 小时前
LeetCode 1356. 根据数字二进制下1的数目排序
数据结构·算法·leetcode
Z9fish7 小时前
sse哈工大C语言编程练习23
c语言·数据结构·算法
代码无bug抓狂人7 小时前
C语言之单词方阵——深搜(很好的深搜例题)
c语言·开发语言·算法·深度优先