题目:
Given a number represented as an array of digits, plus one to the number.
eg: input [9,9] output [1,0,0]
分析:此题比较简单,只要处理当末尾数是9的时进位以及当第一位为9时有可能要增加数组长度。
代码如下:
vector<int> plusOne(vector<int> &digits) {
if(digits.size()==0)
{
digits.push_back(1);
return digits;
}
int t=0;
digits[digits.size()-1]+=1;
for(int i=digits.size()-1;i>=0;i--)
{
int tmp=(digits[i]+t)/10;
digits[i]=(digits[i]+t)%10;
t=tmp;
}
if(t==1)
{
digits.push_back(1);
for(int i=digits.size()-1;i>=1;i--)
{
digits[i]=digits[i-1];
}
digits[0]=1;
}
return digits;
}