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<int> plusOne(vector<int> &digits) { 4 int len = digits.size(), carry = 0; 5 if (digits.size() == 0) return vector<int> (); 6 vector<int> 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 };