当前位置: 首页 > news >正文

南山做网站的网络广告联盟

南山做网站的,网络广告联盟,邢台做wap网站,做网站的一个黑点符号968.监控二叉树 力扣题目链接(opens new window) 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 贪心思路: 从下往上看,局部最…

968.监控二叉树

力扣题目链接(opens new window)

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

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

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

贪心思路:

从下往上看,局部最优:让叶子节点的父节点安摄像头,所用摄像头最少

                      整体最优:全部摄像头数量所用最少

确定遍历顺序

可以使用后序遍历也就是左右中的顺序,这样就可以在回溯的过程中从下到上进行推导了

 // 后序遍历,从下往上传递状态let left = dfs(n.left)     // 获取传上来的状态let right = dfs(n.right)

用三个数字来表示每个节点的状态:

  • 0:该节点无覆盖
  • 1:本节点有摄像头
  • 2:本节点有覆盖

  • 情况1:左右节点都有覆盖 ——> 本节点无覆盖
if(left === 2 && right === 2){return 0}
  • 情况2:左右节点至少有一个无覆盖的情况 ——> 本节点有摄像头
if(left === 0 || right === 0){res ++return 1}
  • 情况3:左右节点至少有一个有摄像头 ——> 本节点有覆盖
if(left === 1 || right === 1){return 2}

特殊情况: 最后遍历到根节点如果是无覆盖,则根节点需要转换为有摄像头

if(dfs(root) === 0){ // 处理最后的根节点res ++}

完整JS代码:

var minCameraCover = function(root) {let res = 0function dfs(n){if(n === null){return 2}// 后序遍历,从下往上传递状态let left = dfs(n.left)     // 获取传上来的状态let right = dfs(n.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}if(dfs(root) === 0){ // 处理最后的根节点res ++}return res
};

http://www.yidumall.com/news/57734.html

相关文章:

  • 网站备案要如何取消全网引擎搜索
  • 哪个网站做贺卡做的好唯尚广告联盟app下载
  • 公司概况搜索引擎优化的基本方法
  • jsp做网站广东深圳今天最新通知
  • 管理员网站推广渠道平台
  • 郑州市网站建设安徽网站seo
  • 网站开发工具简述软件培训机构排行榜
  • 武汉市建设厅官方网站信阳seo公司
  • 服务专业的网站制作服务抖音十大搜索关键词
  • 洛阳做网站公司哪家好google登录
  • 如何在第三方网站做推广seo优化方向
  • 有了主机和域名后如何做网站短链接
  • 专门做推荐的网站怎么搭建属于自己的网站
  • 济南天桥区网站建设微商已经被国家定为传销了
  • 做网站banner课程封面嘉兴seo外包平台
  • 百度网站优化新十条优化措施
  • 管理网络的应用软件网站排名优化外包
  • 智慧医疗软件公司排名石家庄seo网络优化的公司
  • 高校两学一做网站建设网站销售怎么推广
  • 网站网络推广教程品牌推广手段
  • 中山网站建设哪家好快速刷排名的软件最好
  • 一建建设网站兰州网站开发公司
  • 做公司seo网络培训班
  • 马云1688网站在濮阳如何做推广计划
  • 图书销售网站设计怎么做厨师培训
  • 网站怎么做后台百度搜索风云榜官网
  • 企业标志logo关键词优化工具有哪些
  • 高明网站设计服务品牌策划案
  • 同一虚拟主机 2个网站seo研究中心倒闭
  • 广州古柏广告策划有限公司长沙seo