给定一个数组,表示整数的各个位数,现要将其加上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出现较少,放后面效率好点,概率,:-)