class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (digits.empty()) {
digits.push_back(1);
return digits;
}
vector<int> nums(digits.rbegin(), digits.rend());
vector<int>::iterator itr = nums.begin();
int carry = 0;
int sum = carry+*itr+1;
while (itr != nums.end()) {
if (sum<10) {
*itr = sum;
carry = 0;
break;
} else {
carry = sum/10;
*itr = sum%10;
}
itr++;
sum = carry+*itr;
}
if (carry >0) {
nums.push_back(carry);
}
vector<int> res (nums.rbegin(), nums.rend());
return res;
}
};
public:
vector<int> plusOne(vector<int> &digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if (digits.empty()) {
digits.push_back(1);
return digits;
}
vector<int> nums(digits.rbegin(), digits.rend());
vector<int>::iterator itr = nums.begin();
int carry = 0;
int sum = carry+*itr+1;
while (itr != nums.end()) {
if (sum<10) {
*itr = sum;
carry = 0;
break;
} else {
carry = sum/10;
*itr = sum%10;
}
itr++;
sum = carry+*itr;
}
if (carry >0) {
nums.push_back(carry);
}
vector<int> res (nums.rbegin(), nums.rend());
return res;
}
};