66. 加一
一、问题描述
二、算法思想
1、求出列表的长度,记为length。
2、对元素digits[length-1]加一,然后判断其是否为10,不为10就跳出循环;若为10的话则令其为0,然后length减一。
3、若步骤2没有跳出循环,重复步骤2,直到跳出循环或length小于零。
4、判断列表第一位元素是否为0,若不为零,不用做特殊处理,直接返回;若为零,说明进位了,从最后一个元素进位到第一个元素,这时因为列表长度没变,因为进位少了个1,把1和列表拼接起来返回就行了。
三、代码
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
length =len(digits)
while length >0:
digits[length-1] += 1
if digits[length-1] == 10:
digits[length-1] = 0
length -= 1
else:
break
digits2 = [1]
if digits[0] == 0:
digits2.extend(digits)
else:
digits2=digits
return digits2