力扣-贪心-968 监控二叉树

思路

用true和false作为放置了摄像头,会有局限,就是没法判断以下情况

所以要用数字代表三种状态

  • 2:有覆盖
  • 1:有摄像头
  • 0:无覆盖

两个节点都被覆盖时,要返回0

两个节点有一个无覆盖就要返回1

两个节点有一个有摄像头,返回覆盖即可

代码

cpp 复制代码
class Solution {
public:
    int res = 0;
    int mindTracing(TreeNode* root){
        if(root == nullptr) return 2;
        int left = mindTracing(root->left);
        int right = mindTracing(root->right);

        if(left == 2 && right == 2){
           return 0;
        }
        if(left == 0 || right == 0){
            res++;
            return 1;
        }
        if(left == 1 || right == 1){
            return 2;
        }
        return -1;
    }
    int minCameraCover(TreeNode* root) {
        if(root->right == nullptr && root->left == nullptr) return 1;
        if(mindTracing(root) == 0){
            res++;
        }
        return res;
    }   
};
相关推荐
秋深枫叶红1 分钟前
嵌入式第二十七篇——数据结构——栈
c语言·数据结构·学习·算法
稚辉君.MCA_P8_Java6 分钟前
Gemini永久会员 Java 返回最长有效子串长度
java·数据结构·后端·算法
Swift社区19 分钟前
LeetCode 440 - 字典序的第 K 小数字
算法·leetcode·职场和发展
youngee1120 分钟前
hot100-42二叉树的右视图
算法
CoovallyAIHub23 分钟前
如何让机器看懂视觉世界?从图像匹配理解环境开始
深度学习·算法·计算机视觉
hweiyu0028 分钟前
数据结构:树
数据结构
Mxsoft61934 分钟前
某次PMU数据不同步,动态时钟补偿算法救场!
算法
中國龍在廣州35 分钟前
李飞飞最新思考:语言模型救不了机器人
人工智能·深度学习·算法·语言模型·自然语言处理·chatgpt·机器人
deepdata_cn36 分钟前
时序性步态数据处理的RNN及LSTM算法
rnn·算法·lstm
RFSOC+FPGA38 分钟前
林肯实验室文献解读(1)-相控阵列架构实现可扩展的集成感知和通信
算法·架构