代码随想录算法训练营第三十七天| LeetCode738.单调递增的数字 、LeetCode968.监控二叉树(未完成)

738.单调递增的数字

题目描述: 738.单调递增的数字.

解法

贪心

class Solution(object):
    def monotoneIncreasingDigits(self, n):
        if n == 0:
            return 0
        nums = map(int,list(str(n)))
        #print(nums)
        length = len(nums)
        flag = length
        for i in range(length-1,0,-1):
            if nums[i] < nums[i-1]:
                nums[i] = 9
                nums[i-1] -= 1
                flag = i
        while flag < length:
            nums[flag] = 9
            flag += 1
        #if nums[0] == 0:
        #    nums = nums[1:]
        return int(''.join(map(str,nums)))

从后向前判断,后小于前就更改后为9,前-1。

你可能感兴趣的:(算法)