LeetCode 66 Plus One (Python详解及实现)

本文介绍了一个简单的算法问题:如何在一个表示非负整数的数字数组上实现加一操作。通过遍历数组并处理进位,文章详细展示了用Python实现该算法的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【题目】

Given a non-negative integer represented asa non-empty array of digits, plus one to the integer.

 

You may assume the integer do not containany leading zero, except the number 0 itself.

 

The digits are stored such that the mostsignificant digit is at the head of the list.

 

 给定一个数组,将数加一,返回新的数组。比如[9,9],返回[1,0,0]。

 

【思路】

 

数组末尾位加1,然后如果进位就向前一个数字加1.

【Python实现】

 

 classSolution(object):

   def plusOne(self, digits):

       """

       :type digits: List[int]

       :rtype: List[int]

       """

       digits_length = len(digits)

       if digits_length == 0:

           return [1]

       carry = 0#进位

       digits[digits_length - 1] += 1#末尾加1

       while digits_length > 0:

           digits[digits_length - 1] += carry

           if digits[digits_length - 1] >= 10:

               digits[digits_length - 1], carry= digits[digits_length - 1] % 10, digits[digits_length - 1] // 10

           else:

                carry = 0

                break

           digits_length -= 1

       if carry == 0:

           print(digits)

           return digits

       digits.insert(0,carry)#在digits[0]加入carry

       print(digits)

       return digits

                 

           

if __name__ == '__main__':

    S= Solution()

   digits = [1,2,1,9]

   S.plusOne(digits

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值