class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
vector<int> ret = digits;
reverse(ret.begin(), ret.end());
ret[0] += 1;
int carry = 0;
for (int i = 0; i < ret.size(); ++i) {
ret[i] += carry;
carry = ret[i] / 10;
ret[i] %= 10;
}
if (carry) {
ret.push_back(carry);
}
reverse(ret.begin(), ret.end());
return ret;
}
};