66.Plus One
我采用的方法是先把整个vector翻转,再顺序加。最后再重新翻转回来。
class PlusOne {
public:
vector<int> plusOne(vector<int>& digits) {
vector<int> tmpDig = digits;
reverse(tmpDig.begin(), tmpDig.end());
int ten = 0;
int nValue = tmpDig[0] + 1;
if (nValue == 10)
{
ten = 1;
nValue = 0;
}
tmpDig[0] = nValue;
for (int i = 1; i < tmpDig.size(); i++)
{
tmpDig[i] = tmpDig[i] + ten;
ten = 0;
if (tmpDig[i] == 10)
{
ten = 1;
tmpDig[i] = 0;
}
if (ten == 0)
{
break;
}
}
if (ten == 1)
{
tmpDig.push_back(1);
}
reverse(tmpDig.begin(), tmpDig.end());
return tmpDig;
}
};