您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页每天一题LeetCode【第48天】

每天一题LeetCode【第48天】

来源:二三娱乐

T66. Plus One【Easy

题目

给一个用数组表示的非负整数,加一并返回。

假设数组除了 0 本身不会零打头(不会有 01,007 这样的数组)。

高位在数组头部。

思路

① 若不进位则直接++返回

② 若进位则我当前位置设为 0,前面的判断是否进位,然后重新执行 ① 和 ②

③ 若遇到 99999 这样全是 9 的遍历完都没返回,则给前面加一个 1,返回

看代码就可以懂了~

代码

代码取自 Top Solution,稍作注释

public int[] plusOne(int[] digits) {
        //获得数字长度
        int n = digits.length;
        //从低位往高位遍历
        for(int i=n-1; i>=0; i--) {
            //若小于9,则直接++,跳出循环返回+1
            if(digits[i] < 9) {
                digits[i]++;
                return digits;
            }
        //能执行到这里代表进位了,所以设为 0
        digits[i] = 0;
        }
        //能执行到这里说明前面都是 999999,所以添加一位,设成 1
        int[] newNumber = new int [n+1];
        newNumber[0] = 1;
        return newNumber; 
    }

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务