灵感来源
- 保持更新,努力学习
- python脚本学习
加一
解题思路
“加一” 问题是要对一个由非负整数组成的数组所表示的数字加一。这个数组的每个元素代表数字的一位,最高位在数组的最前面。解题的关键在于处理进位情况,以下是具体步骤:
- 从最低位开始遍历:从数组的最后一个元素开始,逐位检查。
- 加一操作:对当前位加一,如果加一后小于 10,说明没有进位,直接返回结果;如果加一后等于 10,需要进位。
- 处理进位:若当前位加一后等于 10,将当前位设为 0,并继续检查前一位,重复加一和进位处理。
- 处理最高位进位:如果遍历到最高位仍有进位,需要在数组最前面插入一个 1。
def plusOne(digits): n = len(digits) for i in range(n - 1, -1, -1): if digits[i] < 9: digits[i] += 1 return digits digits[i] = 0 # 如果所有位都是 9,需要在最前面插入一个 1 return [1] + digits # 测试示例 digits = [1, 2, 3] print(plusOne(digits))
逐行解释
def plusOne(digits):
# 获取数组的长度
n = len(digits)
# 从数组的最后一位开始向前遍历
for i in range(n - 1, -1, -1):
# 如果当前位小于 9,直接加 1 并返回结果
if digits[i] < 9:
digits[i] += 1
return digits
# 如果当前位等于 9,将其置为 0,继续处理前一位
digits[i] = 0
# 如果所有位都是 9,需要在最前面插入一个 1
return [1] + digits
# 测试示例
digits = [1, 2, 3]
print(plusOne(digits))