LeetCode66 Plus One 加一

问题描述:
Given a non-empty array of digits representing a non-negative integer, plus one to the integer.

The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit.

You may assume the integer does not contain any leading zero, except the number 0 itself.

Example 1:

Input: [1,2,3]
Output: [1,2,4]

Explanation: The array represents the integer 123.
Example 2:

Input: [4,3,2,1]
Output: [4,3,2,2]

Explanation: The array represents the integer 4321.
题源:here;完整实现:here
思路:
原位操作,代码如下:

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        int len = digits.size();
        int carryBit = 0; digits[len - 1] += 1;
        for (int i = len - 1; i >= 0; i--){
            int tempSum = digits[i] + carryBit;
            digits[i] = tempSum % 10;
            carryBit = tempSum / 10;
        }
        if (carryBit) digits.insert(digits.begin(), carryBit);
        return digits;
    }
};

贴出运行结果纪念一下:
这里写图片描述
最后,回归C++的风格,python就不在这里YY了。

猜你喜欢

转载自blog.csdn.net/m0_37518259/article/details/80934396