Skip to content

Latest commit

 

History

History
41 lines (30 loc) · 1.09 KB

File metadata and controls

41 lines (30 loc) · 1.09 KB
  • 标签:数组
  • 难度:简单

题目大意

给定一个非负整数数组,数组每一位对应整数的一位数字。计算整数 +1 后的结果。

解题思路

这道题把整个数组看成了一个整数,然后个位数 +1。问题的实质是利用数组模拟加法运算。

如果个位数不为 9 的话,直接把个位数 +1 就好。如果个位数为 9 的话,还要考虑进位。

具体步骤:

  1. 数组前补 0 位。
  2. 将个位数字进行 +1 计算。
  3. 遍历数组
    1. 如果该位数字 大于等于 10,则向下一位进 1,继续下一位判断进位。
    2. 如果该位数字 小于 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