leetcode加一

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

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

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

示例 1:

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

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

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

提示:

1 <= digits.length <= 100
0 <= digits[i] <= 9

法一、

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        for i in range(len(digits)-1,-1,-1):
            if digits[i]!=9:
                digits[i]+=1
                return digits
            else:
                digits[i]=0
        digits.insert(0,1)
        return digits

注意

一个Python函数只会执行一次 return 语句,并返回相应的值或表达式。当函数执行遇到 return 语句时,就会立即退出函数,不再执行后续代码或语句。

需要注意的是,在函数体内可以包含多个return语句,但是只有第一个执行到的 return 语句会生效并返回其相应的值,如果函数中的条件满足多个 return 语句,则程序将只会执行第一个符合条件的 return 语句,而忽略后续的所有 return 语句。

chatgpt生成的代码解释

这段代码是Python语言的一个类中的函数定义,实现将给定整数数组加1的功能。具体解释如下:

  1. 定义了一个名为Solution的类,并在其中声明了一个名为plusOne的函数,该函数需要传入一个整数列表digits,并返回一个整数列表。

  2. 在函数内部,使用for语句和range()函数构建倒序遍历列表digits的循环,从最后一个元素开始依次判断取值。

  3. 如果当前元素不等于9,则直接将其加1并返回digits即可。

  4. 如果当前元素等于9,则将其设置为0。

  5. 继续循环,如果整个列表都只有9,则在列表首部插入1,以满足进位需求。

  6. 最后返回digits作为函数的返回值。

需要注意的是,由于这个算法只涉及加1操作,因此对于更高位到10的进位处理没有包含在内。同时,在原始数组digits被修改后不会再还原,容易导致数字转换域出现错误,因此还需要根据实际应用场景进行适当的优化和改写。

法二、list->str->int->str->list

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        res=""
        for i in digits:
            res +=str(i)
        a=str(int(res)+1)
        return [int(i) for i in a]

这段代码是Python语言的一个类中的函数定义,实现将给定整数数组加1的功能。具体解释如下:

  1. 定义了一个名为Solution的类,并在其中声明了一个名为plusOne的函数,该函数需要传入一个整数列表digits,并返回一个整数列表。

  2. 在函数内部,首先声明一个空字符串变量res。

  3. 循环遍历数字列表digits中的每个元素i,并将其转化为字符串类型,将其添加到字符串变量res的末尾,逐渐构建一个与原列表digits对应的字符串。

  4. 将经过拼接得到的字符串res转化为整型数值,加1后再使用str()函数将其转换回字符串。这一步实现了对给定数字进行加1操作。

  5. 使用列表推导式,依次取出字符串a中每个字符,把其转成int类型并存储到一个新的整数列表中,最终输出作为该函数的返回值。

需要注意的是,由于这种算法采用字符串转数值、数值转字符串、字符串切割等较多的操作,相比于整型加1的方式来说时间复杂度稍大,但在处理数据范围较小时能够满足要求,同时也更加通用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值