比较简单的是弄个进位,每一个都是加进位,然后遍历:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int in=1;
int n=digits.size();
for(int i=n-1;i>=0;i--)
{
int temp=digits[i]+in;
digits[i]=temp%10;
in=temp/10;
}
if(in!=0)
{
digits.insert(digits.begin(),in);
}
return digits;
}
};
另一种,其实就是如果没有进位了就停,这个时候就加完了:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int n=digits.size();
for(int i=n-1;i>=0;i--)
{
if(digits[i]!=9)
{
digits[i]++;
return digits;
}
else
{
digits[i]=0;
}
}
digits[0]=1;
digits.push_back(0);
return digits;
}
};