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;
}
相关推荐
蓝色的杯子9 分钟前
Python面试30分钟突击掌握-LeetCode3-Linked list
python·leetcode·面试
csdn_aspnet37 分钟前
C语言 (QuickSort using Random Pivoting)使用随机枢轴的快速排序
c语言·算法·排序算法
语戚1 小时前
力扣 494. 目标和 —— 回溯 & 动态规划双解法全解(Java 实现)
java·算法·leetcode·动态规划·力扣·dp·回溯
北顾笙9801 小时前
day23-数据结构力扣
数据结构·算法·leetcode
爱编码的小八嘎1 小时前
C语言完美演绎7-15
c语言
田梓燊1 小时前
leetcode 234
算法·leetcode·职场和发展
孬甭_1 小时前
揭开指针的面纱(下)
c语言
计算机安禾1 小时前
【数据结构与算法】第43篇:Trie树(前缀树/字典树)
c语言·开发语言·矩阵·排序算法·深度优先·图论·宽度优先
yashuk2 小时前
C语言入门教程:程序结构与算法举例
c语言·算法·教程·程序设计·开发过程
hanbr2 小时前
每日一题day1(Leetcode 76最小覆盖子串)
算法·leetcode