力扣:66. 加一(Python3)

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

题目:

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

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

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

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

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


示例 2:

输入:digits = [4,3,2,1]
输出:[4,3,2,2]

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


示例 3:

输入:digits = [0]
输出:[0]

解法:

最后1位+1,如果没有进位就可以返回了,如果有进位,一直向前进位,直到不再产生进位。如果第1位也有进位,在列表头添加1。

知识点:

1.列表切片:list[start : end : step],start : 起始索引,默认为0;end:结束索引,不包含,默认为列表的长度;step:步长,默认为1,当省略步长时,可以同时省略后一个冒号,步长为正时,从左向右取值,步长为负时,反向取值。步长为1,表示1个1取值,步长为2,表示间隔取值。如果步长为负数,要么起始和结束索引都省略,要么起始在结束位置后。在Python中,序列的序号即可以从左向右以0开始依次增加,也可以从右向左以 -1开始依次减少,因此通过的序号访问序列中的元素,同一个元素可以有2个序号。文章来源地址https://www.toymoban.com/news/detail-656580.html

代码:

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        carry = 0
        for index, num in enumerate(digits[::-1]):
            if index == 0:
                if digits[-1] == 9:
                    digits[-1] = 0
                    carry = 1
                    if index == len(digits) - 1:
                        digits.insert(0, 1)
                else:
                    digits[-1] = num + 1
                    break
            else:
                if carry == 1:
                    if num == 9:
                        digits[len(digits) - 1 - index] = 0
                        if index == len(digits) - 1:
                            digits.insert(0, 1)
                    else:
                        digits[len(digits) - 1 - index] = num + 1
                        break
                else:
                    break
        return digits

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

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

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

相关文章

  • 用Rust刷LeetCode之66 加一

    66. 加一 [1] 难度: 简单 解题思路 从最低位开始遍历,逐位加一。如果最高位进位,则在数组首位插入 1。 复杂度分析 时间复杂度:O(n),其中 n 是数组的长度。我们只遍历了数组一次。 空间复杂度:O(1),除了返回的数组,没有其他额外的空间。 Rust版本: 几乎同样的写法,但

    2024年02月04日
    浏览(36)
  • 【经典算法】 leetcode88.合并排序的数组(Java/C/Python3实现含注释说明,Easy)

    作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法( 公众号同名 ) ❤️觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论,💬支持博主,记得点个大大的 关

    2024年04月22日
    浏览(41)
  • 【经典算法】LeetCode 5: 最长回文子串(Java/C/Python3实现含注释说明,Medium)

    标签(题目类型):回文串、动态规划 原题:LeetCode 5 思路 Dynamic Programming(DP) 动态规划是一种将问题分解成子问题并分别计算的优化技术。对于回文子串,我们可以使用动态规划来解决。 对于一个子串而言,如果它是回文串,并且长度大于 2,那么将它首尾的两个字母去除之后

    2024年04月14日
    浏览(66)
  • leetcode:1470. 重新排列数组(python3解法)

            给你一个数组  nums  ,数组中有  2n  个元素,按  [x1,x2,...,xn,y1,y2,...,yn]  的格式排列。 请你将数组按  [x1,y1,x2,y2,...,xn,yn]  格式重新排列,返回重排后的数组。 示例 1: 示例 2: 示例 3: 提示: 1 = n = 500 nums.length == 2n 1 = nums[i] = 10^3  

    2024年02月16日
    浏览(43)
  • leetcode:2717. 半有序排列(python3解法)

    给你一个下标从  0  开始、长度为  n  的整数排列  nums  。 如果排列的第一个数字等于  1  且最后一个数字等于  n  ,则称其为  半有序排列  。你可以执行多次下述操作,直到将  nums  变成一个  半有序排列  : 选择  nums  中相邻的两个元素,然后交换它们。 返回使

    2024年01月24日
    浏览(45)
  • 加一 Python 力扣

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

    2024年02月08日
    浏览(24)
  • leetcode:412. Fizz Buzz(python3解法)

    给你一个整数  n  ,找出从  1  到  n  各个整数的 Fizz Buzz 表示,并用字符串数组  answer ( 下标从 1 开始 )返回结果,其中: answer[i] == \\\"FizzBuzz\\\"  如果  i  同时是  3  和  5  的倍数。 answer[i] == \\\"Fizz\\\"  如果  i  是  3  的倍数。 answer[i] == \\\"Buzz\\\"  如果  i  是  5  的倍数。

    2024年02月02日
    浏览(40)
  • LeetCode(力扣)46. 全排列Python

    https://leetcode.cn/problems/permutations/

    2024年02月09日
    浏览(33)
  • LeetCode(力扣)455. 分发饼干Python

    https://leetcode.cn/problems/assign-cookies/ 从大遍历 从小遍历

    2024年02月09日
    浏览(36)
  • LeetCode(力扣)37. 解数独Python

    https://leetcode.cn/problems/sudoku-solver/description/

    2024年02月09日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包