求职刷题力扣DAY34--贪心算法part05

Definition for a binary tree node.

class TreeNode:

def init(self, val=0, left=None, right=None):

self.val = val

self.left = left

self.right = right

class Solution:

def minCameraCover(self, root: Optional[TreeNode]) -> int:

三种状态0:没有覆盖,1:已覆盖 2:安装摄像头

self.res = 0

def recur(root):

if not root:

#空节点,已覆盖,这样叶子节点不用单独判断了

return 1

假如左右只有要没有覆盖,则需要安装摄像头

left = recur(root.left)

right = recur(root.right)

if left == 0 or right == 0:

self.res += 1

return 2

假如左右有一个有摄像头,当前为已覆盖

if left == 2 or right == 2:

return 1

其他情况表示未覆盖

return 0

#最后还要对根节点进行单独的判断,如果root没有覆盖需要 + 1

if recur(root) == 0:

self.res += 1

return self.res

相关推荐
吴可可12314 分钟前
用Teigha修改并保存CAD文件
数据库·算法·c#
灰灰勇闯IT1 小时前
ops-reduce:ReduceMax 与 ReduceMean 的并行优化
算法
水木流年追梦1 小时前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
沙威玛_LHE2 小时前
P13376题解
算法
DFT计算杂谈2 小时前
KPROJ编译教程
java·前端·python·算法·conda
重生之我是Java开发战士2 小时前
【笔试强训】Week5:空调遥控, kotor和气球,走迷宫,主持人调度II,体操队形,二叉树的最大路径和,排序子序列,消减整数
java·算法·动态规划
吃好睡好便好3 小时前
用if…end…语句计算分段函数
开发语言·人工智能·学习·算法·matlab
灰灰勇闯IT3 小时前
ops-memory:CANN Runtime 的 Tensor 内存管理
算法
叶子Talk4 小时前
OpenAI破解80年数学猜想,AI首次做出原创证明
人工智能·数学·算法·机器学习·ai·openai·ai推理
MhZhou04124 小时前
1.11M参数小模型实现脑瘤分割 CVPR 2026 Findings 开源
算法·计算机视觉·3d·空间计算