66. Plus One
2019-03-05 本文已影响0人
FlyCharles
1. 我的AC
方法一
- 低位开始,从右往左,逐一判断是否进位
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
digits[-1] += 1
for i in range(len(digits)-1, 0, -1):
if digits[i] == 10:
digits[i] = 0
digits[i-1] += 1
else:
return digits
if digits[0] == 10:
digits[0] = 0
digits.insert(0, 1)
return digits
方法二
- 映射函数
map()
class Solution(object):
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
num = int("".join(map(str, digits))) + 1
return [int(char) for char in str(num)]
2. 小结
- 数组逆序
range(10, 0, -1) # [10, 9, 8, ..., 1]
- 映射函数
map()
map(str, nums) # [1, 2, 3] -> ['1', '2', '3']