- 标签:数组
- 难度:简单
给定一个非负整数数组,数组每一位对应整数的一位数字。计算整数 +1 后的结果。
这道题把整个数组看成了一个整数,然后个位数 +1。问题的实质是利用数组模拟加法运算。
如果个位数不为 9 的话,直接把个位数 +1 就好。如果个位数为 9 的话,还要考虑进位。
具体步骤:
- 数组前补 0 位。
- 将个位数字进行 +1 计算。
- 遍历数组
- 如果该位数字 大于等于 10,则向下一位进 1,继续下一位判断进位。
- 如果该位数字 小于 10,则跳出循环。
def plusOne(self, digits: List[int]) -> List[int]:
digits = [0] + digits
digits[len(digits)-1] += 1
for i in range(len(digits)-1,0,-1):
if digits[i] != 10:
break
else:
digits[i] = 0
digits[i-1] += 1
if digits[0] == 0:
return digits[1:]
else:
return digits