- Problem: use vector to express digits, plus one to calculate result
- Concept: 算是簡單考 carry 的概念, mod 等基本運算
- Implementation:
-
class Solution { public: vector
plusOne(vector & digits) { vector result(digits); if (digits.size() == 0) return result; int carry = 1; // init as plus one for (vector ::iterator iter = digits.end() - 1; iter >= digits.begin(); iter--) { int prevCarry = carry; carry = (*iter + carry) / 10; *iter = (*iter + prevCarry) % 10; if (0 == carry) break; } if (1 == carry) digits.insert(digits.begin(), 1); return digits; } };
2018年10月31日 星期三
[LeetCode] 66. Plus One
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言