示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
重要是看数组数是9的情况,比如99,999之类,这样的话+1会进一,数组长度也会增加,变成100,1000;
设置循环从后往前看,判断当前数组的数字是9的情况。如果不是9,直接加1并且返回数组;如果是9的话让当前位直接变成0,接着循环判断9的情况。
如果是类似于{‘9’,‘9’,‘9’}这种情况,我们还要建立一个新数组,新数组的长度要比输入的数组长度大一位,且第一位是1,后面都是0.
class Solution {
public int[] plusOne(int[] digits) {
int len=digits.length;
for(int i=len-1;i>=0;i--){
if(digits[i]==9){
digits[i]=0;
}else{
digits[i]+=1;
return digits;
}
}
int[] new_digits=new int[digits.length+1];
new_digits[0]=1;
return new_digits;
}
}
我本来也想过这种方法,就是将这个整型数组转化成相应的数字,其次再进行加1运算,最后转成数组。不过来回转化有些麻烦,不过能写出来,但是我觉得没有上面写的这个方法好。