66. plus one

Given a non-negative number represented as an array of digits, plus one to the number.

The digits are stored such that the most significant digit is at the head of the list.

题目大意:
用一个数组存放一个非负整数,给这个数加1。结果还是用数组表示,数组头为高位。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
vector<int> num;

int plus = 1;
for (int i = digits.size() - 1; i >= 0; i--) {
if (digits[i] + plus == 10) {
num.push_back(0);
plus = 1;
} else {
num.push_back(digits[i] + plus);
plus = 0;
}
}

if (plus == 1)
num.push_back(plus);
reverse(num.begin(),num.end());
return num;
}
};