66.加一-Python-LeetCode

版权声明:转载请注明! https://blog.csdn.net/linfeng886/article/details/82744791

一、题目

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头.

例1:

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

例2:

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

二、解法

我们需要判断会不会产生进位的情况,所以我们可以设置一个状态变量 carry
当它为1的时候,就说明当前位数值需要加1
当当前位数值为9时,加1就需要进一位,即 carry 仍为1,否则 carry 赋值为0
倒序遍历数组
最后判断 carry 为1或者0,为1时,在数组头部加1

代码如下:

carry=1
l = len(digits)
for x in range(-1,-l-1,-1):
    if(digits[x]==9 and carry==1):
        digits[x]=0
        carry = 1 
    elif(carry==1):
        digits[x] += 1
        carry = 0
if(carry==1):
    digits.insert(0, 1)
return digits

时间 44ms,击败了 99.5%

结语

欢迎关注我的公众号 疯子的Python笔记

公众号二维码.jpg

猜你喜欢

转载自blog.csdn.net/linfeng886/article/details/82744791