LeetCode #989. Add to Array-Form of Integer
题目
989. Add to Array-Form of Integer
解题方法
设置一个digitpos记录数组中下一步应该加的位置,当K不等于0时做循环,取K和10的余数作为每次的加数,从digitpos开始向前做进位加法,当i越界时在第0位插入余数num,如果进位加法结束时的i没有越界,就把digitpos减一。加完之后再把K整除10继续循环直到K=0。
时间复杂度:未知,挺快的,beats 93.88%...
空间复杂度:O(1)
代码
class Solution:
def addToArrayForm(self, A: List[int], K: int) -> List[int]:
digitpos = len(A) - 1
while K:
num = K % 10
i = digitpos
while i > -1 and num:
A[i] += num
num = 0
if A[i] > 9:
A[i] -= 10
i -= 1
num = 1
else:
if i < 0:
A.insert(0, num)
else:
digitpos -= 1
K //= 10
return A

浙公网安备 33010602011771号