题目
思路
这道题,我原先的思路是判断一下每一位有没有进位,维护每一位的进位,这样来想是最常规的,但是这样子比较复杂,需要维护的东西有点多,如果是只判断那一位是不是9,这样子简单一些,因为进位这件事只发生在9的时候。
还有一个问题就是,如果每一位都是9,这时候,加一之后总的位数会变多,需要新开一个vector保存一下新的整数。
代码
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int n=digits.size();
for(int i=n-1;i>=0;i--){
if(digits[i]!=9){
digits[i]++;
for(int j=i+1;j<n;j++){
digits[j]=0;
}
return digits;
}
}
vector<int> ans(n+1);
ans[0]=1;
return ans;
}
};