Leetcode 66. 加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。

你可以假设除了整数 0 之外,这个整数不会以零开头。

示例 1:

输入: [1,2,3]

输出: [1,2,4]

解释: 输入数组表示数字 123。

示例 2:

输入: [4,3,2,1]

输出: [4,3,2,2]

解释: 输入数组表示数字 4321。

**难度**: Easy

**标签**: 数组、


# -*- coding: utf-8 -*-
# @Author  : LG

"""
执行用时:36 ms, 在所有 Python3 提交中击败了88.95% 的用户
内存消耗:13.4 MB, 在所有 Python3 提交中击败了48.64% 的用户

解题思路:
    按照题意,模拟数字加1
"""
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        add = 1 # 先要加的1,以及记录进位
        index = len(digits)-1
        while index > -1:   # 从最后一位开始计算
            num = digits[index] + add   # 当前位加上进位
            add = num//10       # 更新进位
            digits[index] = num % 10    # 更新当前值
            index -= 1  # 处理下一个
        if add > 0:
            digits.insert(0, add)   # 如果最终进位不为0,则在最开始添加一位
        return digits