Leetcode 66. Plus One 加一

    xiaoxiao2022-07-07  214

    Leetcode 66. Plus One 加一

    标签: Leetcode


    题目地址:https://leetcode-cn.com/problems/plus-one/

    题目描述

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

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

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

    示例 1:

    输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。

    示例 2:

    输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。

    算法思想

    可以按照我们小时候学习的加法运算计算,从最后一位开始计算,并且用一个变量标记进位(初始把进位置为1,因为本题是计算加一的),我们把最后一位和进位相加得出结果tmp,则结果的最后一位为tmp,对应的新的进位为tmp//10 ,向前遍历即可。最后判断进位是否大于0,如果大于的话,插入到最前面,否则直接返回结果。

    python代码

    class Solution(object): def plusOne(self, digits): """ :type digits: List[int] :rtype: List[int] """ i = len(digits)-1 count = 1 # 进位 while i>=0: tmp = digits[i]+count digits[i] = tmp % 10 count = tmp // 10 i-=1 if count>0: digits.insert(0,count) return digits
    最新回复(0)