加一

加一

一、题目描述

给定一个非空数组,数组的元素都是单个数字。这个数组的各个元素组成一个整数。给这个整数加一。输出加一后的数组。
实例

输入:digits = [1,2,3]
输出:[1,2,4]

输入:digits = [4,3,2,1]
输出:[4,3,2,2]

输入:digits = [0]
输出:[1]

输入:digits = [9]
输出:[1,0]

二、题目分析

第一眼以为就是给每个数组最后一位元素加一即可。发现遇到9需要进位。酒需要判断是否需要进位,从而判断最后一位是否为9.

三、解题思路

方法1
倒序判断最后一位是否为9。是否需要进位。但是发现倒数第二位是9,还是需要进位。只需要判断有几个连续9,即可。9前面的一位加一,后面都归0;还有一种情况,就是整个数组都为9,则数组长度加一。第一位为1,其余都为0;
代码实现

public int[] plusOne(int[] digits) {

        int n = digits.length;
        for(int i = n-1; i>=0;i--){
            if(digits[i] !=9){
                digits[i] = digits[i]+1;
                for(int j=i+1; j<n; j++){
                    digits[j] = 0;
                }
            return digits;
            }            
        }

        int[] arr = new int[n+1];
        arr[0] = 1;
        for(int i=1; i< arr.length; i++){
            arr[i] = 0;
        }
        return arr;

    }
posted @   z_coding  阅读(300)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示