题目:

思路:简单题,只要考虑最后有没有进位就好了~
代码:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int carry = 1;
for(int i = digits.size() - 1; i >= 0; i--){
int val = digits[i] + carry;
carry = val / 10;
val = val % 10;
digits[i] = val;
}
if(carry == 0) return digits;
vector<int> res(digits.size()+1, 1);
for(int i = 1; i < res.size(); ++i){
res[i] = digits[i-1];
}
return res;
}
};
----
2020.4.7 第3题。
本文提供了一种解决LeetCode上“加一”问题的简洁算法思路与C++实现代码。通过从数组末尾开始遍历,判断是否需要进位,并进行相应的数值更新。若最高位仍有进位,则在数组前插入1并返回结果。

647

被折叠的 条评论
为什么被折叠?



