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