跳到主要内容

Plus One

描述

Given a number represented as an array of digits, plus one to the number.

分析

高精度加法。

代码

# Plus One
# 时间复杂度O(n),空间复杂度O(1)
class Solution:
def plusOne(self, digits):
return self.add(digits, 1)

def add(self, digits, digit):
c = digit # carry, 进位

for i in range(len(digits) - 1, -1, -1):
digits[i] += c
c = digits[i] // 10
digits[i] %= 10

if c > 0: # assert (c == 1)
tmp = [0] * (len(digits) + 1)
tmp[1:] = digits[:]
tmp[0] = c
return tmp
else:
return digits