给定一个二叉树,我们在树的节点上安装摄像头。

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。

计算监控树的所有节点所需的最小摄像头数量。

输入:[0,0,null,0,0]
输出:1
解释:如图所示,一台摄像头足以监控所有节点。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {int cnt=0;public int minCameraCover(TreeNode root) {if(getMinCameraCover(root)==0) cnt++;return cnt;}//返回值代表节点的状态  1是被装了摄像头 2是被子节点罩的 3是0没人罩的public int getMinCameraCover(TreeNode root) {if(root==null) return 2;int l=getMinCameraCover(root.left);int r=getMinCameraCover(root.right);if(l==0||r==0)//子节点没人监控,需要该节点监控他{cnt++;return 1;//告诉父节点 他被监控了}else if(r==1||l==1)//该节点已经被子节点监控了{return 2;//告诉父节点没人监控他}return 0;//告诉父节点要装监控,不然这个节点就没监控了}
}

leetcode968. 监控二叉树(dfs)相关推荐

  1. [Swift]LeetCode968.监控二叉树 | Binary Tree Cameras

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. leetcode968. 监控二叉树

    一:论语 这个有意思,我们可以从中得出的是,一个人过错 其实是潜意思决定的 行为见品质 但知错更改也是nice的 二:题目 三:上码 /*** Definition for a binary tree ...

  3. 代码随想录算法训练营第三十七天 | 738.单调递增的数字,714. 买卖股票的最佳时机含手续费,968.监控二叉树,总结

    Day36 周日休息~ 一.参考资料 单调递增的数字 https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9 ...

  4. 力扣算法JS LC [714. 买卖股票的最佳时机含手续费] LC [968. 监控二叉树]

    LC 714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中 prices[i]表示第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你 ...

  5. 代码随想录算法训练营第37天|738. 单调递增的数字,714. 买卖股票的最佳时机含手续费,968. 监控二叉树

    Day 37 738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strN = to_st ...

  6. 【leetcode困难】968. 监控二叉树

    968. 监控二叉树 瞎**分析评论区Rui大佬的答案,这题想直接递归return min还是有坑的,分计数和状态.有个状态转换的思想 转载于:https://www.cnblogs.com/yuel ...

  7. 【算法】贪心算法:LeetCode 714 买卖股票的最佳时机含手续费 、LeetCode 968 监控二叉树

    LeetCode 714 买卖股票的最佳时机含手续费 (中等) 题目 描述 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :整数 fee 代表了交易股票的手续费用. 你 ...

  8. 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

    文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...

  9. _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 、714.买卖股票的最佳时机含手续费、968.监控二叉树

    _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 .714.买卖股票的最佳时机含手续费.968.监控二叉树 题目列表 738.单调递增的数字 714.买卖股票 ...

最新文章

  1. vscode前端开发中的快捷键说明
  2. CoreLocation.ConnectionClient CFDictionaryApplyFunction Crash
  3. 同步IO、异步IO的区别
  4. python3.8新特性 逻辑表达式_Python3.8正式发布!新特性解析在这里
  5. Linux——Ubuntu 18.04 安装screenFetch(显示系统/主题信息的命令行脚本)
  6. 牛客网暑期ACM多校训练营(第三场)
  7. CMake学习使用(基于vscode)
  8. 前端学习(1841):前端面试题之react和vue区别
  9. 深度学习论文阅读进阶路径图
  10. yuv420(planer) to bgr24 to bmp
  11. 计算机网络的体系结构
  12. 12 个学习新的编程语言的方法
  13. 二元函数连续性知识点总结
  14. Cadence16.6 PSpice仿真步骤---以分立器件搭建的H桥电路仿真为例
  15. oracle裁员原因_如何评价甲骨文(ORACLE)中国区裁员?
  16. 5G时代下的人工智能发展
  17. mmorpg无缝地图
  18. Linux创建用户密码修改
  19. siblings的用法
  20. Twinmotion 2020 视频教程-学习笔记

热门文章

  1. 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模
  2. java线程池参数面试题,附赠复习资料
  3. 你知道怎么在生产环境下部署tomcat吗?
  4. 这篇文章可以满足你80%日常工作!一线互联网公司面经总结
  5. css3 变换、过渡效果、动画
  6. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
  7. Django学习--数据库同步操作技巧
  8. 进程间的通讯(IPC)方式
  9. UVA1262Password(第K字典序)
  10. 游戏组件——挑战:创建NextBlock游戏组件