blob: 05c7b21c0f57e219a76cf08d2857d5f4f1b1f274 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int carry = 1;
for (int i = digits.size()-1; (i >= 0) && (carry == 1); --i) {
const int sum = digits[i] + carry;
digits[i] = sum % 10;
carry = (sum >= 10) ? 1 : 0;
}
if (carry == 1) { // Overflow.
digits.resize(digits.size() + 1);
// Shift right.
for (size_t i = digits.size()-1; i > 0; --i) {
digits[i] = digits[i-1];
}
digits[0] = 1;
}
return digits;
}
};
|