給定一個數組,表示整數的各個位數,現要將其加上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出現較少,放后面效率好點,概率,:-)