看答案写的,我也写了一个算法,还算能够,不过除了点小问题,没改,我就不贴了。git
我看到这个答案,我感受人家的算法是怎么写出来的,为何这么精致,厉害厉害,反正我是菜算法
class Solution {
public int[] plusOne(int[] digits) {
int leng = digits.length;
for(int i = leng - 1;i >= 0;i--){
if(digits[i] < 9){
digits[i]++;
return digits;
}
digits[i] = 0;
}
int[] res = new int[leng + 1];
res[0] = 1;
return res;
}
}数组
总结:这题我最开始都没理解,查了几个博客才知道什么意思,int [] a = {1,2,3};至关于int b = 123;就是把整数的每一位都存到数据里面,而后返回int b = 123 + 1的数组,返回int [] c = {1,2,4}; 博客
1.从后往前遍历各位置,当小于9的时候,加1不会对前一位有影响,因此直接返回就数组就能够。it
2.当等于9的时候,该位赋0,若是该位置不是最后一位,则判断下一位,由于小于9的都会自增,因此不用考虑进位问题了,若是是最后一位,则条出循环,建立新数组,并在index = 0位置赋值1,返回该数组。io
这个算法我最喜欢的就是if(digits[i] < 9){digits[i]++;return digits;},真是太厉害了,怎么相出来的呢,我根本没有想到,能够写的这么巧妙,我好菜啊
class