题目
分析
从低位开始,如果不进位则加1直接返回即可。
如果有进位则循环移动到高位加进位判断高位是否也需要进位,以此类推,如果最高位也要进位则需要开辟一个新数组(最高位为1,其余为0)。
题解
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int j=1;
for(int i=digits.size()-1;i>=0;i--){
int temp=digits[i]+j;
if(temp/10)
{
j=1;
digits[i]=0;
}
else
{
j=0;
digits[i]=temp;
return digits;
}
}
if(j==1)
{
vector<int> arr(digits.size()+1);
arr[0]=1;
for(int i=1;i<digits.size();i++)
arr[i]=0;
return arr;
}
}
};