给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例 3:

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

class Solution {
    public int[] plusOne(int[] digits) {
        int a = digits.length;
        int b = 0;
        for(int i = 0;i < a;i++){
            if(digits[i] == 9){
                b = 0;
            }else{
                b = 1;
                break;
            }
        }
        if(b == 0){
            int[] arr = new int[a+1];
            arr[0] = 1;
            return arr;
        }else{
            add(digits,digits.length-1);
        }
        return digits;
    }
    static int[] add(int[] ab,int a){
        if(ab[a]==9){
            ab[a]=0;
            add(ab,a-1); 
        }else{
            ab[a] =  ab[a] + 1;
        }
        return ab;
    }
}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐