day01笔记
1.题目描述
描述
给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照数位高低进行排列,最高位的数在列表的最前面。
2.代码构思(debug)
方法1: 数组转为整数加一后在变为逆序变为数组
def plus_one(self, digits: List[int]) -> List[int]:
# write your code here
# 先将数组转为整数加一后在变为逆序变为数组
# result = 0
# for item in digits:
# result = result * 10 + item
# result += 1
# lst = []
# while result != 0:
# lst.append(result%10)
# result//= 10
# return lst[::-1]
方法2: 将数组逆序后+1,然后在逆序回来
extra = 0
one = 1
digits = digits[::-1]
for index,num in enumerate(digits):
if extra + one + num == 10:
extra = 1
one = 0
digits[index] = 0
else:
digits[index] = num + one + extra
return digits[::-1]
digits.append(1)
return digits[::-1]