给定一个非负整数组成的非空数组,给整数加一。
可以假设整数不包含任何前导零,除了数字0本身。
最高位数字存放在列表的首位。
解题思路:
首先我们应该对list从后往前处理,首先遍历的range是应该先reversed的。
定义一个变量carry为进位的那个1,digit为相应每一位应该的数字
PS:carry 进位条件是digit<digits[I]. 而不是digit==0。。。因为后面有可能连着几位是0
解题代码:
carry=1
for i in reversed(range(len(digits))):
digit=(digits[i]+carry)%10
carry=1 if digit<digits[i] else 0
digits[i]=digit
if carry==1 :
return [1]+digits
return digits