Skip to content

Latest commit

 

History

History
58 lines (46 loc) · 1.5 KB

66.md

File metadata and controls

58 lines (46 loc) · 1.5 KB

【中规中矩】66. 加一 (C++/Python 数组操作)

解题思路

该题是两数相加的简化版。初始化carry为1,倒序加carry即可。如若最后carry>0需要在数组开头再插入一个carry值。

代码

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        assert(!digits.empty());
        int carry = 1;
        int N = digits.size();
        int i = N - 1;
        while (i >= 0) {
            int sum = digits[i] + carry;
            int digit = sum % 10;
            carry = sum / 10;
            digits[i] = digit;
            i--;
        }

        if (carry > 0) {
            digits.insert(digits.begin(), carry);
        }

        return digits;
     }
};
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        carry = 1
        N = len(digits)
        i = N - 1
        while (i >= 0) :
            sum = digits[i] + carry
            digit = sum % 10
            carry = sum // 10
            digits[i] = digit
            i -= 1

        if (carry > 0) :
            # digits.insert(0, carry)
            digits = [carry] + digits
        return digits

点我赞赏作者

github 题解

Image