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

相关推荐
全栈凯哥15 分钟前
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
java·算法·leetcode·链表
全栈凯哥18 分钟前
Java详解LeetCode 热题 100(27):LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)详解
java·算法·leetcode·链表
SuperCandyXu22 分钟前
leetcode2368. 受限条件下可到达节点的数目-medium
数据结构·c++·算法·leetcode
Humbunklung39 分钟前
机器学习算法分类
算法·机器学习·分类
Ai多利1 小时前
深度学习登上Nature子刊!特征选择创新思路
人工智能·算法·计算机视觉·多模态·特征选择
蒟蒻小袁1 小时前
力扣面试150题--被围绕的区域
leetcode·面试·深度优先
Q8137574602 小时前
中阳视角下的资产配置趋势分析与算法支持
算法
yvestine2 小时前
自然语言处理——文本表示
人工智能·python·算法·自然语言处理·文本表示
GalaxyPokemon2 小时前
LeetCode - 148. 排序链表
linux·算法·leetcode
iceslime3 小时前
旅行商问题(TSP)的 C++ 动态规划解法教学攻略
数据结构·c++·算法·算法设计与分析