python 给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。该数字按照大小排序,最大的数字放在最前面。

给定一个非负数,表示一个数字数组,在该数的基础上+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]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容