题目链接:66. 加一

题解:

简单题!

题目简述:

给定一个数字序列,最后一位加一,满十进一,求加一后的序列!

题解:

从最后一位开始,给他加一,然后更新当前位的值为digits[i] %= 10

t更新为digits[i] / 10

最后若进位到最前面,需要进行插入,即在最前面插入t即可!

AC代码:

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
26
27
28
29
30
31
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
vector<int> res;
int t = 1;
for(int i = digits.size() - 1; i >= 0; i--){
digits[i] += t;
t = digits[i] / 10;
digits[i] %= 10;
}
if(t) digits.insert(digits.begin(), t);
return digits;
}
};


// 几乎一样:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
vector<int> res;
int t = 1;
for(int i = digits.size() - 1; i >= 0; i--){
t += digits[i];
digits[i] = t % 10;
t /= 10;
}
if(t) digits.insert(digits.begin(), t);
return digits;
}
};