求职刷题力扣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

相关推荐
小姚也要变强9 分钟前
sort排序 计数排序 map set C++ 蓝桥杯
开发语言·c++·算法·蓝桥杯
WBluuue20 分钟前
大一计算机的自学总结:数据结构设计相关题
数据结构·c++·算法·leetcode·链表
白白糖23 分钟前
Day 28 卡玛笔记
python·算法·力扣
JNU freshman33 分钟前
蓝桥杯思维训练营(四)
算法·蓝桥杯
BingLin-Liu34 分钟前
蓝桥杯备考:前缀和算法之最大子段和
算法
和风化雨38 分钟前
排序算法--归并排序
c语言·数据结构·c++·算法·排序算法
Doopny@1 小时前
统计满足条件的4位数(信息学奥赛一本通-1077)
算法
KuunNNn1 小时前
蓝桥杯试题:排序
算法·蓝桥杯
YYJ333_3331 小时前
蓝桥杯更小的数(区间DP)
算法
明晚十点睡1 小时前
2022ACMToG | 寻找快速的去马赛克算法
人工智能·python·深度学习·算法·机器学习·计算机视觉