题目:int型数组中存放了一个整数,例如:56,存储为:array[0]=5; array[1]=6;要求在该数字上加1,仍保存在数组中。
方法:从数组的最后一位开始加1,需要考虑进位,如果到[0]位之后仍然有进位存在,需要新开一个长度为(n.length + 1)的数组,拷贝原来的数组。
public class Solution {
public int[] plusOne(int[] digits) {
if(digits == null||digits.length == 0)
{
int[] digit=new int[1];
digit[0]=1;
return digit;
}
int length=digits.length;
int index=length-1;
int carry=1;
while(index>=0&&carry!=0)
{
carry=(digits[index]+1)/10;
digits[index]=(digits[index]+1)%10;
index--;
}
if(index>=0||carry == 0)
return digits;
else
{
int[] array=new int[length+1];
array[0]=1;
for(int i=0;i<length;i++)
{
array[i+1]=digits[i];
}
return array;
}
}
}