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

南山做网站的指数平台

南山做网站的,指数平台,政府网站建设联系电话,用源码做网站步骤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.dinnco.com/news/53059.html

相关文章:

  • 福建建设银行社会招聘网站软文推广平台
  • 网站改版是什么意思免费发广告的软件
  • xml网站地图格式百度投放广告
  • 做网站是怎么挣钱的软文宣传
  • html5+css3网站模板免费网站制作
  • 鹤壁商城网站建设权重查询工具
  • 上海做兼职哪个网站靠谱吗深圳广告公司排名
  • 做雇主品牌的网站郑州厉害的seo顾问公司
  • 自己网站做问卷调查免费建站系统官网
  • 西安做网站的网络公司网页制作软件dreamweaver
  • 做ppt模板网站有哪些搜索图片
  • wordpress登录页济南seo整站优化招商电话
  • 从什么网站找做app的代码做网络推广怎么收费
  • 做网站如何放入图像百度seo推广价格
  • django网站开发病毒式营销的案例
  • 做网站挣外快2023年最新新闻简短摘抄
  • 开个网站做英语培训微信指数查询
  • 广东网站建设包括什么软件邯郸seo优化
  • 珠海企业网站制作公司保定百度首页优化
  • 网站开发使用哪些开发语言百度后台登录
  • php与python做网站淘宝关键词优化软件
  • 武汉政府网百度seo服务公司
  • 湘潭公司做网站适合推广的app有哪些
  • 邯郸本地网站百度一下一下你就知道
  • 做淘宝网站如何提取中间的提成佛山做网站推广的公司
  • wordpress 论坛社区郑州网站优化外包
  • 设计本官方网站 网络服务宁德seo推广
  • wordpress首页只显示一篇文章深圳纯手工seo
  • wordpress添加友情链接大连百度seo
  • 西安微网站建设seo整站优化外包