比較簡單的是弄個進位,每一個都是加進位,然後遍歷:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int in=1;
int n=digits.size();
for(int i=n-1;i>=0;i--)
{
int temp=digits[i]+in;
digits[i]=temp%10;
in=temp/10;
}
if(in!=0)
{
digits.insert(digits.begin(),in);
}
return digits;
}
};
另一種,其實就是如果沒有進位了就停,這個時候就加完了:
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]++;
return digits;
}
else
{
digits[i]=0;
}
}
digits[0]=1;
digits.push_back(0);
return digits;
}
};