- 题目地址 968. Binary Tree Cameras
- 解析
本题是一道二叉树的题目,在给定一颗二叉树上安装监控器,每一个监控器安装在一个节点上,该监控器的监控范围包括该节点,直接父节点及两个直接子节点,求每一个节点都能够被监控到的条件下安装的监控器的最少数量。
本题关键点在于什么情况下必须在一个节点上安装监控器,分析,有两个节点A和B,B是A的左节点且是叶节点,如果在B上安装监控器,由于其没有子节点,该监控器将浪费掉对下监控的两个资源,所以应该在A上安装监控器,可知,当一个节点的两个直接子节点中的至少一个需要该节点提供监控时,则该节点必须安装监控
定义一个节点向上提供监控的能力,能力值分别为-1,0,1。其中-1表示该节点需要父节点安装监控器;0表示该节点(包括空节点)已被直接子节点安装的监控器所包含;1表示该节点安装了监控,可以向父节点提供监控。 所有的空节点(叶节点的左右节点为空)向上提供监控能力为0。对于一个非空节点T:
- 若T的直接子节点中至少一个向上提供监控的能力为-1,则在T上安装监控器, 此时T向上提供监控的能力为1;
- 否则,若T的直接子节点中至少一个向上提供监控的能力为1,则T被直接子节点上的监控器监控到,不需要在T上安装监控器,此时T向上提供监控的能力为0&
【LeetCode】968. Binary Tree Cameras
最新推荐文章于 2023-09-16 22:20:51 发布