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

电子商务网站建设实验指导网络推广是什么工作

电子商务网站建设实验指导,网络推广是什么工作,做网站公司青浦,互联网创业项目app337. 打家劫舍 III - 力扣(LeetCode) 一、题目 小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。 除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识…

337. 打家劫舍 III - 力扣(LeetCode)

一、题目

小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。

除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 两个直接相连的房子在同一天晚上被打劫 ,房屋将自动报警。

给定二叉树的 root 。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额 。

示例 1:

输入: root = [3,2,3,null,3,null,1]
输出: 7 
解释: 小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7

示例 2:

输入: root = [3,4,5,1,3,null,1]
输出: 9
解释: 小偷一晚能够盗取的最高金额 4 + 5 = 9

提示:

  • 树的节点数在 [1, 104] 范围内
  • 0 <= Node.val <= 104

二、代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public class Info {// 如果要抢劫当前节点的情况下,以当前节点为根节点的整棵树能获得的最大收益是多少public int yes;// 如果不抢劫当前节点的情况下,以当前节点为根节点的整棵树能获得的最大收益是多少public int no;public Info(int y, int n) {yes = y;no = n;}}public int rob(TreeNode root) {// 获取根节点root的Info信息Info ans = process(root);// 两种情况取最大值就是答案return Math.max(ans.no, ans.yes);}public Info process(TreeNode node) {// node节点左子树的信息Info leftInfo = null;// node节点右子树的信息Info rightInfo = null;// 递归手机左右子树的Infoif (node.left != null) {leftInfo = process(node.left);}if (node.right != null) {rightInfo = process(node.right);}// 左子树和右子树不抢根节点情况下整棵树的最大收益int leftNo = 0;int rightNo = 0;// 左子树和右子树抢根节点情况下整棵树的最大收益int leftYes = 0;int rightYes = 0;// 给上面四个变量赋值,如果没有左右子树了,相关的信息就默认为0if (leftInfo != null) {leftNo = leftInfo.no;leftYes = leftInfo.yes;}if (rightInfo != null) {rightNo = rightInfo.no;rightYes = rightInfo.yes;}// 情况一:抢劫node节点的情况下,计算以node节点为根节点的整颗树的最大收益// 这种情况下左右子节点都是不能抢劫的,否则会出发警报。所以这个的答案就是leftNo + rightNo + node.valint yes = leftNo + rightNo + node.val; // 要记得加上node节点本身的价值,因为这种情况还要抢劫node节点// 情况二:不抢劫node节点的情况下,计算以node节点为根节点的整颗树的最大收益// 这种情况下左右子树抢劫也可以,不抢也可以,都不会触发警报,因为没有同时抢劫直接相连的屋子// 所以这个就是取左子树抢劫和不抢劫两种情况的最大收益的最大值 + 右子树抢劫和不抢劫两种情况的最大收益的最大值  这个就是node节点情况二的最大收益int no = Math.max(leftNo, leftYes) + Math.max(rightNo, rightYes);// 返回node节点的Info信息return new Info(yes, no);}
}

三、解题思路 

如果两家直接相连的屋子被抢劫,会引发报警。一个节点和另外一点是父子关系就是挨着。

两种情况

  1. 在x屋子被抢了的情况下,以x为根节点的整棵树获得的最大收益
  2. 在x屋子不被抢的情况下,以x为根节点的整棵树获得的最大收益

情况一:
如果x屋子要抢的话,那么它的两个左右子节点都不可以抢。

这种情况以x为根的树能做到的最大收益就是左右两个子节点不被抢的最大收益加和 + x节点的val。

情况二:
如果x屋子不抢的话,那么它的两个左右子节点可以抢,也可以不抢。

这种情况以x为根的树能做到的最大收益就是取左孩子的抢和不抢这两种情况的最大收益中的最大值,再取右孩子的抢和不抢这两种情况的最大收益中的最大值,将这两个最大值相加就是x屋子不抢的最大收益值。

http://www.wangmingla.cn/news/10455.html

相关文章:

  • 网站出现404网络推广运营公司
  • 谁有马和人做的网站域名关键词排名查询
  • wordpress页面模板路径seo外包服务
  • 建设公司营销网站搜索关键词优化排名
  • 高端网站设计平台影视站seo教程
  • 海门网站建设高级搜索
  • 物流网站功能客户引流的最快方法是什么
  • 第一次和两个老头做网站模板建站公司
  • 如何用word做网站国家免费培训学校
  • wordpress 影视模板宁波优化网站排名软件
  • 梅州建站怎么做seo优化推广流程
  • 做网站运营有前途win7系统优化大师
  • 一级域名与二级域名玩法株洲seo排名
  • 网站建设 英文版网站制作公司排名
  • 政府网站建设 强化考评问责什么是网站推广?
  • 2017网站建设前景搜索网络如何制造
  • 用dw做的代码怎么放在网站上太原百度推广开户
  • 网站开发的意义和目的重庆网站搜索排名
  • 临沂网站网站建设重庆seo整站优化方案范文
  • 保定建站长沙seo研究中心
  • 自己做简单网站价格设计网站模板
  • 网站后台插入不了图片长沙靠谱seo优化
  • 高端的平面设计网站成人零基础学电脑培训班
  • 合肥 做网站推广自己的网站
  • 电子商务b2c网站建设青岛网站制作推广
  • 网站后台报表统计系统免费申请网站
  • 网页制作与网站建设技术大全自己怎么做网址开网站
  • 优秀logo设计欣赏解析seo排名工具哪个好
  • 怎么做网站聊天视频直播seo基础入门教程
  • 北京住房建设部网站知名品牌营销案例100例