class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
// reverse
int tmp=0;
int size=digits.size();
for(int i=0; i<size/2; ++i)
{
tmp = digits[i];
digits[i] = digits[size-1-i];
digits[size-1-i] = tmp;
}
int i=0;
int flag=0;
digits[0]++;
while(i<size)
{
digits[i] += flag;
if(digits[i]>=10)
{
flag = 1;
digits[i] = 0;
}else
{
flag = 0;
}
i++;
}
if(flag)
{
digits[size-1] = 0;
digits.push_back(1);
}
size = digits.size();
for(int i=0; i<size/2;++i)
{
tmp = digits[i];
digits[i] = digits[size-1-i];
digits[size-1-i] = tmp;
}
return digits;
}
};