您的位置:首页 > 其它

[leetCode] Plus One

2013-03-16 10:36 225 查看
Given a number represented as an array of digits, plus one to the number.

class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> result(digits.size()+1,0);
int carry=0;
for(int i=digits.size()-1;i>=0;i--)
{
if(i==digits.size()-1)
{
result[i+1]=(digits.at(i)+1)%10;
carry=(digits.at(i)+1)/10;
}
else{
result[i+1]=(digits.at(i)+carry)%10;
carry=(digits.at(i)+carry)/10;
}
}
if(carry==1){
result[0]=1;
}
else{
//delete result[0]
for(int i=0;i<digits.size();i++)
{
result[i]=result[i+1];
}
result.pop_back();
}
return result;
}
};


Or:

class Solution {
public:
vector<int> plusOne(vector<int> &digits) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> result(digits.size(),0);
int carry=0;
for(int i=digits.size()-1;i>=0;i--)
{
if(i==digits.size()-1)
{
result[i]=(digits.at(i)+1)%10;
carry=(digits.at(i)+1)/10;
}
else{
result[i]=(digits.at(i)+carry)%10;
carry=(digits.at(i)+carry)/10;
}
}
if(carry==1){
result.insert(result.begin(),carry);
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: