Monday, November 25, 2013

LeetCode Problem : Plus One

Problem


Given a number represented as an array of digits, plus one to the number.

Code


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.
    int n = digits.size();
    int carry = 1;
    vector<int> result;
    deque<int> Q;
    for(int i = n - 1;i >= 0; --i){
        int sum = digits[i] + carry;
        Q.push_front(sum % 10);
        carry = sum / 10;
    }
    while(carry > 0){
        Q.push_front(carry % 10);
        carry /= 10;
    }
    copy(Q.begin(),Q.end(),back_inserter<vector<int> >(result));
    return result;
}

No comments:

Post a Comment