leetcode 66. 加一
题解
刚开始只是以为在最后一位上加一就可以了 , 没想到还有进位呢, 比如说9的话, 加上1就是10, 返回的数组就是[1. 0],把进位的情况考虑进去就可以了。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
// 从后向前遍历数组,从最后一个元素开始处理
for (int i = digits.size() - 1; i >= 0; i--) {
// 将当前位加1
++digits[i];
// 如果当前位加1后不等于10,则直接返回结果
if (digits[i] != 10) {
return digits;
} else {
// 如果当前位加1后等于10,则将当前位设置为0(因为有进位)
digits[i] = 0;
}
}
// 如果遍历完数组仍然有进位,则在数组开头插入1
digits.insert(digits.begin(), 1);
return digits;
}
};