leetcode 66. 加一

这篇具有很好参考价值的文章主要介绍了leetcode 66. 加一。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、题目

leetcode 66. 加一,Leetcode,leetcode,算法,职场和发展
leetcode 66. 加一,Leetcode,leetcode,算法,职场和发展

二、解答

1.思路

分三种情况

  1. 个位数加1小于10不需要进1,则个位数加一后返回数组即可

  2. 需要进1。又分为两种情况:1不需要增加最高位,如899 变为900;2需要增加一位,如999变为1000

    1. 第一种情况,不需要增加最高位时
      1. 创建一个变量保存进位标识,如果是1表示需要进位。如果是0表示不需要进位。
      2. 将数组反转。遍历数组,个、十、百千……
      3. 从个位开始判断个位是否加1后大于9。如果大于9将该数字加1后赋值给个位,进位标识赋值为1。十、百、千以此类推;如果小于9则将该数字加1后赋值给个位,进位标识赋值为0。当进位标识赋值为0时,推出循环。再次反转数组,将数组反转回原来位置。返回数组即可。
    2. 第二种情况,需要增加最高位时。则遍历完数组后临时变量仍旧为1。此时需要追加个1到数组末尾。将数组反转回原来的顺序,返回数组即可。

2. 实现

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """

        # 不需要进1
        if digits[-1] + 1 < 10:
            digits[-1] = digits[-1] + 1
            return digits

        # 需要进1,分两种情况。1不需要增加最高位,如899 变为900;2需要增加一位,如999变为1000
        digits.reverse()
        # 进位标识,真:需要,假:不需要
        plus = 1
        for i, n in enumerate(digits):
            if plus:
                if digits[i] + plus > 9:
                    digits[i] = n + plus - 10
                    plus = 1
                else:
                    digits[i] = n + plus
                    plus = 0
            else:
                break
        if plus:
            digits.append(plus)
        digits.reverse()
        return digits

3.提交

leetcode 66. 加一,Leetcode,leetcode,算法,职场和发展文章来源地址https://www.toymoban.com/news/detail-784874.html

到了这里,关于leetcode 66. 加一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 66. 加一

    题目链接:力扣   解题思路:从后往前遍历数组,加1操作后可能会出现连续的进位,使用pre保存进位,如果pre不为0,就继续向前加上这个进位。如果digits中的所有位加完之后pre还不为0,最高位产生了进位,这个时候需要新建一个数组,数组长度位原数组长度+1,只有digits中

    2024年02月15日
    浏览(33)
  • 66. 加一(Java):BigInteger

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

    2024年01月25日
    浏览(32)
  • 力扣:66. 加一(Python3)

    给定一个由  整数  组成的  非空  数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储 单个 数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚爱

    2024年02月12日
    浏览(31)
  • 【leetcode刷题】66.使用最小花费爬楼梯——Java版

    ⭐欢迎订阅《leetcode》专栏,每日一题,每天进步⭐ 我觉得这个题的描述应该改改:每个阶梯都有一定数量坨屎,一次只能跨一个或者两个阶梯,走到一个阶梯就要吃光上面的屎,问怎么走才能吃最少的屎?开局你选前两个阶梯的其中一个作为开头点,并吃光该阶梯的屎。

    2023年04月08日
    浏览(79)
  • [职场] 会计学专业学什么 #其他#知识分享#职场发展

    会计学专业学什么 会计学专业属于工商管理学科下的一个二级学科,本专业培养具备财务、管理、经济、法律等方面的知识和能力,具有分析和解决财务、金融问题的基本能力,能在企、事业单位及政府部门从事会计实务以及教学、科研方面工作的工商管理学科高级专门人才

    2024年02月20日
    浏览(48)
  • 学习平台助力职场发展与提升

    近年来,随着互联网技术的发展, 学习平台 逐渐成为了职场发展和提升的必备工具。学习平台通过提供丰富的课程内容、灵活的学习时间和个性化的学习路径,帮助职场人士更好地提升自己的技能和知识储备,为职场发展打下坚实的基础。 学习平台的优势在于提供了丰富多

    2024年02月11日
    浏览(49)
  • 如何手机搜学法减分答案? #媒体#职场发展

    今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.证件照全能管家(APP) 一个非常好用的证件照APP 常用的证件照尺寸和底色都有、日常的证件照编辑完全够用,支持一键智能拍摄证件照,还可以对照片

    2024年02月19日
    浏览(47)
  • 【算法专题--双指针算法】leetcode--283. 移动零、leetcode--1089. 复写零

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 双指针 常见的双指针有两种形式,一种是对撞指针,⼀种是左右指针。 对撞指针:一般用于顺序结构中

    2024年03月17日
    浏览(42)
  • 【职业人生】如何有效的在职场当中避免工作失误和提高个人发展

         《左传·宣公二年》:“人谁无过,过而能改,善莫大焉。”古往今来,多少人犯过错误。强大如“智绝”的诸葛孔明,也有街亭之失。职场人更是难免会在工作中出现失误。     在职场生涯当中避免不了在工作当中带来的失误,在这过程当中,我们应当要学会怎么去

    2024年02月08日
    浏览(42)
  • [office] excel成绩表格数据排名次的教程 #职场发展#知识分享#媒体

    excel成绩表格数据排名次的教程 Excel 中经常需要使用到 排名 次的技巧,成绩表格数据具体该如何排名呢?接下来是小编为大家带来的excel成绩表格数据排名次的教程,供大家参考。 步骤1:不管在学校还是各个统计领域,排名应用随处可见,如果排序会打乱原有次序,那么好多

    2024年02月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包