题目:
分析:
在原数组的基础上从最后开始向前加1,用一个int 记录进位,如果遍历后还有进位,贼需要开辟一个比原来数组大小大1的新数组并返回,值得注意的是那句int l=t;如果没有它的话,进位会先更新而下面加的就不是原来的进位了。
代码:
class Solution {
public int[] plusOne(int[] digits) {
int t=0;
for(int i=digits.length-1;i>=0;i--){
if(i+1==digits.length){
t=(digits[i]+1)/10;
digits[i]=(digits[i]+1)%10;
}else{
int l=t;
t=(digits[i]+t)/10;
digits[i]=(digits[i]+l)%10;
}
}
if(t==1){
int[] a=new int[digits.length+1];
a[0]=1;
for(int i=digits.length-1;i>=0;i--){
a[i+1]=digits[i];
}
return a;
}else{
return digits;
}
}
}