leetcode66:加一

加一算法详解
本文深入解析了一种在列表中每个元素上实现加一操作的算法。通过遍历列表,逐位进行加一运算,遇到进位则将当前位设为0,继续向前遍历直至首位。若首位加一后仍发生进位,需在列表头部插入元素1。该算法适用于数字以逆序存储的列表。

思想:

1.将列表digits[i]加1,如果digits[i]+1小于10则digits[i]=digits[i]+1,并跳出for循环,返回digits[i]。反之digits[i]=0,继续步骤1

2.若digits[0]+1 =10,则需要insert函数在列表digits的第一个位置添加元素1

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

if __name__ == "__main__":
    print(Solution().plusOne([9, 9, 9]))

小菜鸟一小时完成两道题,并发了博客,可喜可贺。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值