原题:
Given a number represented as an array of digits, plus one to the number.
这个题和add two numbers一样。。。。记录一个carry就可以了,而且最后需要查看carry一样,carry不为0,则需要添加到最前边。而且这个题的结果是从后面开始算得,那么每次在vector的头部添加一个数时,用这个insert(v.begin(),val).
代码(16 ms):
class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
vector<int>result;
int carry=1;
for(int i =digits.size()-1 ;i>=0;i--){
//将结果插在vector的最前面
result.insert(result.begin() , (digits[i] + carry)%10 );
carry = (digits[i] + carry)/10;
}
//carry不为0,把carry放在最前面
if(carry!=0)
result.insert(result.begin(),carry);
return result;
}
};