力扣(LeetCode)66. 加一

本文深入解析了一种名为“加一”的算法实现,该算法能够处理整数数组,并在数组表示的大数基础上加一。讨论了两种核心场景:当个位数小于9时直接加一,以及当所有位数均为9时的特殊情况处理。通过Java代码示例,展示了如何优雅地解决这一问题,包括循环遍历和数组扩容等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仅用于学习记录

题目

在这里插入图片描述

题解

加一只有两种情况

  1. 个位数小于9
  2. 各位数等于9
class Solution {
    public int[] plusOne(int[] digits) {
    //从个位数开始循环
        for(int i=digits.length-1;i>=0;i--){
            digits[i]++;
            //若本身个位数小于9就不会进位,%10的结果和加一相同
            digits[i]=digits[i]%10;
            if(digits[i]!=0)
            return digits;
        }
        //若是每个位置都是9,那就新建一个比原数组长一位的数组,将首位变成1其余为0就可以
        digits = new int [digits.length + 1];
        digits[0] = 1;
        return digits;
    }
}

最后的情况这个方法很精妙,源自YHHZW
想把它写成一个日记,让妈妈再也不用担心我的学习(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值