Plus One
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
这道题目的思路刚开始是把vector转化为数字,然后加1在运算,后来运行的时候,发现转化之后的数字不是int,用long int的话可能也没法处理,因此只能一位一位的判断是否为10,然后再转换。
注意:存储的时候,最大的数字在最低位,即digits[0]。
class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
vector<int> result,answer;
int n=digits.size();
int num=0;
digits[n-1]++;
for(int i=n-1;i>0;i--)
{
if(digits[i]==10)
{
digits[i-1]++;
result.push_back(0);
}
else
{
result.push_back(digits[i]);
}
}
if(digits[0]==10)
{
result.push_back(0);
result.push_back(1);
}
else
{
result.push_back(digits[0]);
}
int m=result.size();
for(int i=m-1;i>=0;i--)
{
answer.push_back(result[i]);
}
return answer;
}
};