Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
vector<int> plusOne(vector<int> &digits) {
//重现建议一个vector来存储结果,什么情况下会有进位呢,只有为9的情况下, 我只要从后往前找到第一个不为9的元素就可以了,如果全为9,则最后结果为10000……
int len = digits.size();
int i = len - 1;
while (i >= 0 && digits[i] == 9)
--i;
vector<int> result;
if (i < 0)
{
result.push_back(1);
}
else
{
for (int j = 0; j < i; ++j)
result.push_back(digits[j]);
result.push_back(digits[i] + 1);
}
for (int j = i + 1; j < len; ++j)
result.push_back(0);
return result;
}