• 加一


    定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
    最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。
    示例 1:
    输入: [1,2,3]
    输出: [1,2,4]
    解释: 输入数组表示数字 123。

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

    执行用时 :48 ms, 在所有 Python3 提交中击败了81.01% 的用户
    内存消耗 :13.8 MB, 在所有 Python3 提交中击败了5.64%的用户

    class Solution:
        def plusOne(self, digits: List[int]) -> List[int]:
            #有两种情况,第一种,末尾不是9,最后一项直接加一,(digits[-1]+=1)返回digits
            if 0<=digits[-1]<9:
                digits[-1]+=1
                return digits
            #第二种情况,末尾是9
            else:
                #遍历digits,从后往前
                for i in range(len(digits)-1,-1,-1):
                    #出现第一个不为9的数直接加一,循环结束,不再和9比较,返回digits
                    if digits[i]!=9:
                        digits[i]+=1
                        return digits
                    #将i和i后面的所有都为0
                    j=i
                    while j<=len(digits)-1:
                        digits[j] = 0
                        j+=1
                #当出现9,99,999等等这种情况时
                digits[0] = 1
                digits.append(0)
            return digits
    

    在本地运行,需要在最后添加(if前面没有任何空格)

    if __name__=='__main__':
        a=Solution()
        b=a.plusOne([1,1,1,9])
        c=a.plusOne([9])
        d=a.plusOne([9,9])
        e=a.plusOne([9,9,9])
        f=a.plusOne([1,1,1,1])
        print(b,c,d,e,f)
    

    算法题目来自: https://leetcode-cn.com/problems/plus-one/

  • 相关阅读:
    Linux系统配置静态ip
    爬虫之如何找js入口(一)
    asyncio动态添加任务
    关于python导包问题
    python动态添加属性
    requests模块
    反selenium关键字
    PIL模块
    openxlsx模块
    CSV
  • 原文地址:https://www.cnblogs.com/llb123/p/13398741.html
Copyright © 2020-2023  润新知