Plus One

描述

Given a number represented as an array of digits, plus one to the number.

分析

高精度加法。

代码

```cpp// Plus One// 时间复杂度O(n),空间复杂度O(1)class Solution {public: vector plusOne(vector &digits) { add(digits, 1); return digits; }private: // 0 <= digit <= 9 void add(vector &digits, int digit) { int c = digit; // carry, 进位

  1. for (auto it = digits.rbegin(); it != digits.rend(); ++it) {
  2. *it += c;
  3. c = *it / 10;
  4. *it %= 10;
  5. }
  6. if (c > 0) digits.insert(digits.begin(), 1);
  7. }

};```

原文: https://soulmachine.gitbooks.io/algorithm-essentials/content/cpp/linear-list/array/plus-one.html