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