LeetCode ❀ 66. más uno/python

tema:

Dado un número entero no negativo representado por una matriz no vacía de números enteros, suma uno al número.

El dígito más alto se almacena al principio de la matriz y cada elemento de la matriz almacena solo un número.

Puede suponer que, aparte del número entero 0, el número entero no comenzará con cero.

Ejemplo 1:

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

Ejemplo 2:

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

Ejemplo 3:

输入:digits = [0]
输出:[1]

respuesta:

Tenga en cuenta que lo único que vale la pena señalar aquí son situaciones similares como [9], [9,9], [9,9,9], que requieren transporte. Al cortar en el frente, [10] debe dividirse en [1 ,0] ]

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        n = len(digits) - 1
        digits[n] += 1
        for i in range(n-1, -1, -1):
            if digits[i+1] >= 10:
                digits[i+1] %= 10
                digits[i] += 1
            else:
                break
        
        if digits[0] >= 10:
            digits = [1] + digits
            digits[1] = digits[1] % 10
        
        return digits

Supongo que te gusta

Origin blog.csdn.net/qq_42395917/article/details/126604402
Recomendado
Clasificación