代码随想录算法训练营第三十一天|738.单调递增的数字 968.监控二叉树

738.单调递增的数字

这个和贪心有什么关系,我直接看解析了,从最大向最小遍历,然后判断是不是满足递增,这样可能是超时的,贪心的规则比较抽象,首先遍历的顺序应当是从后向前遍历,一旦出现前一位比后一位大的情况,就要让前一位-1,后一位变成9(需要让后面的都变成9,不然不满足递归性质了),这里要处理一下如果前一位-1变成0的情况,好像不用处理

python 复制代码
class Solution:
    def monotoneIncreasingDigits(self, n: int) -> int:
        if n<=9:
            return n
        nums = list(str(n))
        for i in range(len(nums)-1,0,-1):
            if nums[i-1]>nums[i]:
                nums[i-1]=str(int(nums[i-1])-1)
                for j in range(i,len(nums)):
                    nums[j]='9'
        return int(''.join(nums))

968.监控二叉树

我感觉这个应该从底下向上遍历,遇到一个有孩子节点且孩子节点没有被监控的话,就把当前节点监控,指导所有都被监控,我们要考虑遍历的方式

跳了

相关推荐
普通网友8 小时前
内存对齐与缓存友好设计
开发语言·c++·算法
小白程序员成长日记8 小时前
2025.11.18 力扣每日一题
算法·leetcode·职场和发展
Cathyqiii8 小时前
传统扩散模型 VS Diffusion-TS
人工智能·算法
海边夕阳20068 小时前
【每天一个AI小知识】:什么是逻辑回归?
人工智能·算法·逻辑回归
普通网友8 小时前
C++编译期数据结构
开发语言·c++·算法
Gorgous—l8 小时前
数据结构算法学习:LeetCode热题100-图论篇(岛屿数量、腐烂的橘子、课程表、实现 Trie (前缀树))
数据结构·学习·算法
im_AMBER8 小时前
算法笔记 13 BFS | 图
笔记·学习·算法·广度优先
普通网友8 小时前
嵌入式C++安全编码
开发语言·c++·算法
普通网友9 小时前
分布式锁服务实现
开发语言·c++·算法
普通网友9 小时前
移动语义在容器中的应用
开发语言·c++·算法