Day37 贪心算法part06

单调递增的数字

class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        
        nl = [int(char) for char in str(n)]

        for i in range(len(nl)-1, 0, -1):
            if nl[i-1] > nl[i]:
                nl[i-1] -= 1
                nl[i] = 9
                for j in range(i, len(nl)):
                    nl[j] = 9
                
        return int("".join(str(x) for x in nl))

前面都想到了,结果最后n[i]给写错了直接写成9了,得把后面的全都改成9才行

监控二叉树

摄像头的覆盖范围是上中下

遇到叶子结点,放到叶子结点的父节点

每隔两个空节点放一个摄像头

所以要用后序遍历

把结点分为三个状态:0无覆盖1有摄像头2有覆盖

空节点要设置为有覆盖的状态

太难劝退

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