大数求和的简化版
这道题分两种情况编写就行了
- 加一之后小于等于九,直接返回,无需处理
- 加一之后大于九,考虑进位操作,
特殊:
如果原来的是99、999此类,加一之后,数组的长度需要+1,且,除了最高位是1,其余位都是0.
还有一些可以“取巧”的点是:
加一之后,原来的位一定是0,进位一定是1 。
public int[] plusOne(int[] digits) {
digits[digits.length-1]+=1;
for (int i=digits.length-1;i>=0;i--){
if(digits[i] <= 9){
return digits;
}else{
int t = digits[i]/10;
digits[i]%=10;
if(i-1>=0){
digits[i-1]+=t;
}else{
int[] dig = new int[digits.length+1];
dig[0]=1;
return dig;
}
}
}
return null;
}