问题:
题目来源:力扣(LeetCode)
难度:简单
分析:
这道题有两个思路,一个是转成数字直接+1,再转回数组;一个是判断数字进位情况,直接改动数组。
需要注意的是进位问题以及最高的判断。
解决方法:
1:转数字
#python技巧
#
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
nums = [i*10**index for index,i in enumerate(digits[::-1])]
nums += 1
return [int(x) for x in str(nums)]
复杂度:O(n)
2:判断进位
# 判断特殊情况
#
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
for i in range(len(digits)-1,-1,-1):
if digits[i] is not 9:
digits[i] += 1
return digits
else:
digits[i] = 0
if digits[0] == 0:
digits.insert(0,1)
return digits
复杂度:O(n)