新年第一扣

220 阅读2分钟

 前言

 今天是2.9距离除夕还差一个2.10号,今年经历了很多,意识到很多东西很重要,意识到简单的东西门槛就会低,意味着很多人可以做,想要的职位自己能力不够,做不了,能做的又没有挑战,想从基础学起,一步一步积累,总会找到适合自己的,这是我第一次刷力扣,是一道easy题,但是我做了很久,我把它想的很复杂,最后也没有做出来,只把最简单的情况写出来了,另一种情况是看着扣神的代码才写出来的,越是厉害的人会把越难的东西用最简单的方式写出来like越美味的佳肴只需要最简单的烹饪方式。 

 言归正传 

题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 

示例 1:

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

输出:[1,2,4]

解释:输入数组表示数组123.

我的理解:

给你一个数组,将数组里的数当成一个整数来看,比如上边的实例1,就可以看做123,将123+1=124,输出的时候将124输出成数组[1,2,4]

思路:

从个位开始判断数是否<9,小于9的情况比较简单,直接将最后一位数+1就行,但是当个位等于9的情况就比较复杂了,还有[9,9]的情况,不仅要加一,还需要重新定义一个比之前数组长度加1的数组,后边这个也是借鉴了别人的才写出来的:

class Solution{
    public int[] plusOne(int[] digits){
        for(int i=digits.length-1;i>=0;i--){
            if(digits[i] < 9){
                digits[i]++;
                return digits;
            }
            digits[i]=0;
        }
            int[] temp = new int[digits.length + 1];
            temp[0] = 1;
            return temp;
    }
}

输入[1,2,3] 输出[1,2,4]

将数组进行for循环,for循环数组里的数当个位数小于9的情况,将个位数加一然后return.

输入[9,9] 输出[1,0,0]

将数组进行for循环,当个位数等于9的时候将它赋值为0,当十位上的数等于九的时候将它赋值为0,跳出循环,定义一个新的数组,长度加一,将第0位的赋值为1,然后return。

输入[1,2,9] 输出[1,3,0]

将数组进行for循环,当个位数等于9的时候将它赋值为0,然后接着循环十位上的数,十位上的数如果小于9,将十位上的数进行加一然后return。