题目描述:
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。
解题方法1:
def plusOne(digits):
sums = 0
for i in range(len(digits)):
sums += 10**(len(digits)-1-i)*digits[i]
sums_str = str(sums + 1)
return [int(j) for j in sums_str]
解题方法2:
def plusOne(digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
for i in range(len(digits)-1, -1, -1):
if digits[i] < 9:
digits[i] += 1
return digits
else:
digits[i] = 0
return [1] + [0] * len(digits)
解题方法3:
def plusOne(digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
carry = 1
for i in range(len(digits)-1, -1, -1):
carry,b = divmod(digits[i] + carry, 10)
digits[i] = b
if carry:
digits.insert(0, 1)
return digits