【leetcode】66-PlusOne

problem

Plus One

code

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        vector<int> res;
        int carry = 1;
        int sum = 0;
        int mod = 0;
        int i = digits.size()-1;
        while(carry && i>=0)
        {
            sum = digits[i] + carry;
            carry = sum / 10;
            mod = sum % 10;
            res.push_back(mod);
            i--;
        }
        if(carry && i<0) res.push_back(carry); 
        for( ; i>=0; i--)
        {
            res.push_back(digits[i]);
        } 
        reverse(res.begin(), res.end());
        return res;

    }
};

注意可能有进位,而且可能有多个进位,另外注意最高位有进位的情况。

 

参考

1.leetcode;

posted on 2018-11-20 09:23  鹅要长大  阅读(131)  评论(0编辑  收藏  举报

导航