分析:简单题,只需要本本分分模拟即可,将数组最后一位加一,如果产生进位一直向前判断是否还需要进位。有一个需要注意的地方就是如果结束第0位也需要进位那么需要重新创建数组扩容赋值返回。
实现代码:
class Solution {
public int[] plusOne(int[] digits) {
if(digits [digits.length-1]++==9)
for(int i=digits.length-1;i>0;i--)
{
digits[i]=0;
if(++digits[i-1]!=10)
break;
}
if(digits[0]==10)
{
int value[]=new int[digits.length+1];
digits[0]=0;
value[0]=1;
System.arraycopy(digits,0,value,1,digits.length);
return value;
}
return digits;
}
}