LeetCode Plus One

Posted yutingliuyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Plus One相关的知识,希望对你有一定的参考价值。

LeetCode解题之Plus One


原题

给一个由包括一串数字的列表组成的非负整数加上一。

注意点:

  • 列表前面的数字表示高位
  • 注意最高位也可能进位

样例:

输入: [1, 2, 3, 4, 9]

输出: [1, 2, 3, 5, 0]

解题思路

从低位到高位。假设后一位有进位的话,那么该位要加上一,否则退出循环。假设最高位也进位,那么在列表前要插入一个一。

AC源代码

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        carry = 1
        for i in range(len(digits) - 1, -1, -1):
            digits[i] += carry
            if digits[i] < 10:
                carry = 0
                break
            else:
                digits[i] -= 10
        if carry == 1:
            digits.insert(0, 1)
        return digits


if __name__ == "__main__":
    assert Solution().plusOne([1, 2, 3, 4, 9]) == [1, 2, 3, 5, 0]
    assert Solution().plusOne([9]) == [1, 0]

欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源代码。

以上是关于LeetCode Plus One的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 题解之Plus One

[Leetcode] Plus One

LeetCode Plus One Linked List

Plus One Leetcode

[LeetCode] Plus One

leetcode 66. Plus One