前言
今天是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。