leetcode 66 Plus One

给定一个数组,表示整数的各个位数,现要将其加上1,考虑进位。

vector<int> plusOne(vector<int>& digits) {
    int size = digits.size();

    bool carry = true;
    for (int i = size - 1; i >= 0; --i) {
        if (digits[i] == 9 && carry)
            digits[i] = 0;
        else{
            digits[i]++;
            return digits;
        }
    }
    if (digits[0] == 0) {
        vector<int> ret(size + 1, 0);
        ret[0] = 1;
        return ret;
    }
}

思考:

其实也有最后用insert的,其实insert代价也是O(n),需要后移。

也想过判定全是9可以放在for前面,考虑正常情况下全9出现较少,放后面效率好点,概率,:-)

posted on 2018-01-23 00:58  willaty  阅读(123)  评论(0编辑  收藏  举报

导航