分三种情况进行分析:
1.末位不为9,直接末位加一即可。
2.末位有几位都是9,从后往前找到第一个非9的数字加一,将后面置为0。
3.每一位都是9,直接生成一个新的数组,长度比原来多1,第一位置为1,后面置为0。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
for (int i = digits.size() - 1; i >= 0; i--) {
if (digits[i] != 9) {
digits[i]++;
for (int j = i + 1; j < digits.size(); j++) {
digits[j] = 0;
}
return digits;
}
}
vector<int> res(digits.size() + 1, 0);
res[0] = 1;
return res;
}
};