Plus One

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> ans;
        int c = 0, k = 0;
        for(int i = digits.size() -1; i >= 0; i--){
            if (i == digits.size()-1){
                if (digits[i] + 1 >= 10){
                    ans.push_back(digits[i] + 1 - 10);
                    c = 1;
                }else{
                    ans.push_back(digits[i] + 1);
                    c = 0;
                }
            }else if (digits[i] + c >= 10){
                ans.push_back(digits[i] + c - 10);
                c = 1;
            }else{
                ans.push_back(digits[i] +c);
                c = 0;
            }
        }
        if (c){
            ans.push_back(c);
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};

 

posted @ 2013-07-10 22:54  一只会思考的猪  阅读(201)  评论(0编辑  收藏  举报