给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小排序,最大的数字放在最前面。
示例:
给定[1,2,3]表示123,返回[1,2,4]
给定[9,9,9]表示999,返回[1,0,0,0]
class Solution:
def plusOne(self,arr):
num = 0
for i in range(len(arr)):
# 转成十进制
num += 10 ** (len(arr) - i - 1) * arr[i]
# 清空原来的列表
arr.clear()
# 加 1 并转为字符串
s = str(num + 1)
for i in range(len(s)):
#转换为int追加到列表
arr.append(int(s[i]))
return arr
def recursion(self,digits):
'''递归方法'''
if len(digits) == 0:
digits = [1]
elif digits[-1] == 9:
digits = self.plusOne(digits[:-1])
digits.extend([0])
else:
digits[-1] += 1
return digits
if __name__ == '__main__':
sol = Solution()
# 输入
arr = [1,2,3]
max = sol.plusOne(arr)
# 输出
print(max)
# [1, 2, 4]