继续刷LeetCode,第66题,对一个正整数进行加一。
分析:
输入的正整数是用容器来表示每个位的,所以可以从最后一位往前遍历,进行加一,碰到加一后的结果为10的时候就,往前进一位,继续加一,直到第一位。如果出现加一后还是为10,就插入一位。
问题:
1、考虑特殊情况,出现0、129、999等;
附上代码:
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int n=digits.size();
while(n--)
{
if((digits[n]+1)==10)
{
if(n==0)
{
digits[n]=0;
digits.insert(digits.begin(),1);
}
else
digits[n]=0;
}
else
{
digits[n]=digits[n]+1;
break;
}
}
return digits;
}
};