通过数组存放着一个正数,对它进行加1操作。这个题需要考虑进位,但是如果当前进位为0,那么之后也不会出现溢出的问题,比如说1189,加1后就是1190,进行计算时,计算到十位8+1(进位),如果十位小于10,那么百位和千位都不用进行处理了,这样能够节约时间。
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int flag = 0;
for(int i=digits.size()-1; i>=0; i--)
{
if(i==digits.size()-1)
digits[i]++;
digits[i] += flag;
if((digits[i]-9)>0)
{
digits[i]=digits[i]%10;
flag = 1;
}
else
{
flag = 0;
break;
}
}
if(flag==1)
digits.insert(digits.begin(),flag);
return digits;
}
};