leetcode66. 加一 🌟

题目:

  给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

  最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。

  你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

  输入: [1,2,3]
  输出: [1,2,4]
  解释: 输入数组表示数字 123。
示例 2:

  输入: [4,3,2,1]
  输出: [4,3,2,2]
  解释: 输入数组表示数字 4321。

来源:力扣(LeetCode)

解答:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        for i in range(len(digits) - 1, -1, -1):
            digits[i] += 1
            digits[i] = digits[i] % 10
            if digits[i] != 0:
                return digits
        digits = [0] * (len(digits) + 1)
        digits[0] = 1
        return digits
# https://leetcode-cn.com/problems/plus-one/solution/java-shu-xue-jie-ti-by-yhhzw
View Code

 

class Solution:
    # 作者:jyd
    # 链接:https://leetcode-cn.com/problems/two-sum/solution/plus-one-by-jin407891080/
    def plusOne(self, digits: [int]) -> [int]:
        for i in range(len(digits) - 1, -1, -1):
            if digits[i] != 9:
                digits[i] += 1
                return digits
            digits[i] = 0
        digits[0] = 1
        digits.append(0)
        return digits
View Code

 

class Solution:
    # 作者:jian-sheng-8150
    # 链接:https://leetcode-cn.com/problems/two-sum/solution/shi-xian-jia-fa-de-guo-cheng-by-jian-sheng-8150/
    def plusOne(self, digits):

        return self.addOne(digits, len(digits) - 1)

    def addOne(self, digits, index):
        if index == -1:
            digits.insert(0, 1)
            return digits
        digits[index] = digits[index] + 1
        if digits[index] == 10:
            digits[index] = 0
            return self.addOne(digits, index - 1)
        return digits
View Code

 

posted @ 2019-07-12 22:41  catyuang  阅读(124)  评论(0编辑  收藏  举报