[leetcode]-66. 加一-S

2021-06-24  本文已影响0人  六千宛

题目


image.png

我写的

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        for index in range(len(digits)-1):
            if digits[index] > digits[index+1]:
                x = digits[index+1]
                digits[index + 1] = digits[index]
                digits[index] = x
        digits[len(digits)-1]=digits[len(digits)-1]+1
        return digits
image.png

别人写的

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        lenlist = len(digits)                # 定义数组的长度

        while lenlist:                        # 循环遍历:
            if digits[lenlist-1] == 9:            #若数组的最后一位是9,则将其变为0   (情况2)
                digits[lenlist-1] = 0
            else:                                          # 最后一位不是9
                digits[lenlist-1] += 1            # 则最后一位加一,并跳出循环  (情况1、2)
                break       
            lenlist -= 1
            
        if digits[0] == 0:                     # 如果首位是0,则为情况3
            digits.append(0)             # 末尾加0,并令首位为1
            digits[0] = 1
        return digits
image.png
上一篇 下一篇

猜你喜欢

热点阅读