给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 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