
难度:Easy
解题思路:利用vector的反向迭代器,从后向前遍历,求进位。注意“99999”的case。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
class Solution { public: vector<int> plusOne(vector<int>& digits) { auto r_it = digits.rbegin(); int add_number = 1; for(; r_it != digits.rend(); r_it++) { int sum = add_number + *r_it; if(sum/10 == 1) { add_number = 1; sum = sum % 10; *r_it = sum; } else { add_number = 0; *r_it = sum; break; } } if(add_number == 1) { digits.insert(digits.begin(),1); } return digits; } };
|
运行结果:3ms,超过8.5%。
近期评论