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;
}
相关推荐
千金裘换酒2 小时前
LeetCode 移动零元素 快慢指针
算法·leetcode·职场和发展
iuu_star3 小时前
C语言数据结构-顺序查找、折半查找
c语言·数据结构·算法
漫随流水4 小时前
leetcode算法(515.在每个树行中找最大值)
数据结构·算法·leetcode·二叉树
千金裘换酒6 小时前
LeetCode反转链表
算法·leetcode·链表
JoyCheung-6 小时前
Free底层是怎么释放内存的
linux·c语言
圣保罗的大教堂8 小时前
leetcode 1161. 最大层内元素和 中等
leetcode
闲看云起8 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
黛色正浓8 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode
一起努力啊~9 小时前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode