力扣-66. 加一

文章目录

解题思路

复制代码
根据题目可以得出此题一共有3种需要特殊判断的地方。
	1.数组元素的最后一个元素是否为9,如果是那就将此处元素置0,如果不是那就此处元素加1。按照这个逻辑将digits数组重新赋值。
	2.判断重新赋值的digits数组的首元素是否是0,如果是就需要申请一个digitsSize+1的空间来存储数组,如果不是就直接将digits数组返回,数组长度是digitsSize。

代码

c 复制代码
int* plusOne(int* digits, int digitsSize, int* returnSize) 
{
    int end = digitsSize - 1;
    int *arr = NULL;
    while(end + 1)/*end+1 是确保digits数组每一个元素都遍历到*/
    {
        /*元素为9就置0,不为9就加1*/
        if(digits[end] == 9)
        {
            digits[end] = 0;
        }
        else
        {
            digits[end] =  digits[end] + 1;
            break;
        }
        end--;
    }
    
    /*判断重新赋值后的digits数组的首元素是否是0*/
    if(0 == digits[0])/*特殊情况:需要申请的空间为digitsSize+1*/
    {
        /*arr数组为{1,0,0,0,..,0}*/
        arr = (int *)malloc(sizeof(int) * (digitsSize + 1));
        arr[0] = 1;
        memset(&arr[1], 0, sizeof(int) * digitsSize);/*除了首元素其他元素置0*/
        *returnSize =digitsSize + 1;
    }
    else/*常规情况,直接将digits数组数组返回即可*/
    {
        *returnSize =digitsSize;
        return digits;
    }

    return arr;
}
相关推荐
sheeta19981 小时前
LeetCode 每日一题笔记 日期:2025.11.24 题目:1018. 可被5整除的二进制前缀
笔记·算法·leetcode
橘颂TA8 小时前
【剑斩OFFER】算法的暴力美学——两整数之和
算法·leetcode·职场和发展
Dream it possible!9 小时前
LeetCode 面试经典 150_二叉搜索树_二叉搜索树的最小绝对差(85_530_C++_简单)
c++·leetcode·面试
xxxxxxllllllshi9 小时前
【LeetCode Hot100----14-贪心算法(01-05),包含多种方法,详细思路与代码,让你一篇文章看懂所有!】
java·数据结构·算法·leetcode·贪心算法
-森屿安年-12 小时前
LeetCode 283. 移动零
开发语言·c++·算法·leetcode
元亓亓亓15 小时前
LeetCode热题100--79. 单词搜索
算法·leetcode·职场和发展
2501_9411437316 小时前
缓存中间件Redis与Memcached在高并发互联网系统优化与实践经验分享
leetcode
Elias不吃糖18 小时前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode
野蛮人6号19 小时前
力扣热题100道前62道,内容和力扣官方稍有不同,记录了本人的一些独特的解法
数据结构·算法·leetcode
CoderYanger21 小时前
优选算法-栈:69.验证栈序列
java·开发语言·算法·leetcode·职场和发展·1024程序员节