1. 题意理解
用数组表示一个非负整数,求解该非负整数加一的结果,结果要求同样使用数组表示;
2. 题目分析:
1)注意最高位进位;
2)注意数组的最低位为数值的最高位;
3. 解题代码
public class Solution {
public int[] plusOne(int[] digits) {
int len=digits.length;
int[] ans= new int[len];
int carry=0;
for(int i=len-1; i>=0; i--){
int addOne;
if(i==len-1){
addOne=carry+digits[i]+1;
}else{
addOne=carry+digits[i];
}
ans[i]=(addOne)%10;
carry=(addOne)/10;
}
if(carry!=0){
int[] rst=new int[len+1];
rst[0]=carry;
for(int i=0; i<len; i++){
rst[1+i]=ans[i];
}
ans=rst;
}
return ans;
}
}