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出现较少,放后面效率好点,概率,:-)
【本文章出自博客园willaty,转载请注明作者出处,误差欢迎指出~】