Assign a new vector as the size is length + 1. Because if the original is 9999...., the it will have one digit more.
1 class Solution { 2 public: 3 vector plusOne(vector &digits) { 4 int len = digits.size(), carry = 0; 5 if (digits.size() == 0) return vector (); 6 vector result(len+1, 0); 7 digits[len-1]++; 8 for (int i = len-1; i >= 0; i--) { 9 result[i+1] = digits[i] + carry;10 carry = result[i+1]/10;11 result[i+1] %= 10;12 }13 if (carry) result[0] = 1;14 else result.erase(result.begin());15 return result;16 }17 };