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

南康市建设局网站电脑优化大师有用吗

南康市建设局网站,电脑优化大师有用吗,网站已有备案了 现在换空间商还用备案么,设计制作一个企业类型网站公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、 没有环的多叉树。树的头节点是公司唯一的老板。除老板之外的每个员工都有唯一的直接上级。 叶节点是没有任何下属的基层员工(subordinates列表为空),除基层员工外,每…

公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、 没有环的多叉树。树的头节点是公司唯一的老板。除老板之外的每个员工都有唯一的直接上级。 叶节点是没有任何下属的基层员工(subordinates列表为空),除基层员工外,每个员工都有一个或多个直接下级.

这个公司现在要办party,你可以决定哪些员工来,哪些员工不来规则

1.如果某个员工来了,那么这个员工的所有直接下级都不能来

2.派对的整体快乐值是所有到场员工快乐值的累加

3.你的目标是让派对的整体快乐值尽量大

给定一棵多叉树的头节点boss,请返回派对的最大快乐值。

员工信息的定义如下:

class Employee {public int happy; // 这名员工可以带来的快乐值List<Employee> nexts; // 这名员工有哪些直接下级
}

这道算法题我是花了一整天时间才理清楚的,光靠想象力会把自己给绕晕了。

 分析:假设2个变量missMax 和 joinMax分别记录当前节点参加、缺失时有可能获得的最大快乐值

1)叶子节点是没有子节点的,因此我们可知,如果叶子节点不能参加,那么返回的信息就该为0,如果可以参加,那么他们的返回信息就该为当前叶子结点本身的快乐值。

2)左子树4下方有3个节点,分别为3、3、5.

     a) 如果节点4参加,那么子节点就不能参加,因此,当前节点4的最大快乐值为 4,即 joinMax            = 4;missMax =0;

     b) 如果4节点不参加,那么4节点及子节点就有可能获得的最大快乐值为 3+3+5 = 11,即          missMax = 11; 当然,他们的子节点也依旧可能全部不参加,即 joinMax =0;

     c)  总结:如果4节点参加,获得的最宽快乐值为4,即joinMax  = 4, 如果4不参加,获得的最大快乐值为11,即missMax = 11

3)分析6节点

     a) 如果6节点参加,那么4节点就不能参加,那么有可能获得的最大值最大值就为 6 + 11 = 17, 即 joinMax = 17.  这个11是我们第2步b步骤推导出来的

     b) 如果6节点不参加,那么4节点如果参加,因此,最大值就为4,即missMax=4, 由第2步a步骤推导出来。

     c)如果6节点不参加,4节点也不参加,那么4节点的子节点就可以参加了,此时最大快乐值就可得到 3+3+5=11,即missMax = 11

     d)  6不参加,4参加,最大快乐值为4,即missMax=4; 6不参加,4不参加,得到的最大快乐值为11,即missMax = 11。最终,我们可以根据步骤b和c得到6不参加,可以获得的最大快乐值为11,missMax = 11。

     e) 最终6节点,我们可知:6节点参加,最大快乐值可得到17,即 joinMax = 17;6节点不参加,可得到最大快乐值为11,即missMax = 11

下面分析右子树

1. 节点5

      a) 如果5节点参加,最大快乐值为5,即joinMax = 5;

      b) 如果5不参加,那么最大快乐值为 1+2+3 =6; 即 missMax =6;

2. 节点7

   a) 如果节点7参加,那么5就不可以参加,因此最大快乐值为 7+6=13,即joinMax=13,6是由步骤1的b得到

   b)如果7不参加,5也不参加,那么最大快乐值就是6,即missMax=6

   c)如果7不参加,5参加, 那么最大快乐值就是5,即missMax=5 (小于6)

   d) 总结:7参加,可得最大快乐值joinMax=13, 7不参加,可得最大快乐值为missMax=6

 

此时,返回到根节点进行分析,根节点值也为5

a)根节点参加,节点6和7都不能参加。可得到 5 + 11 + 6 = 22

b) 根节点不参加,那么6和7就可以参加了,可得 17 + 13 = 30.

全部理解上面的分析以后,我们再来看看下面的绘图:

最后,看用套路写代码:

package code03.二叉树_02;import java.util.ArrayList;
import java.util.List;/***  公司的每个员工都符合 Employee 类的描述。整个公司的人员结构可以看作是一棵标准的、 没有环的多叉树。*  树的头节点是公司唯一的老板。除老板之外的每个员工都有唯一的直接上级。*  叶节点是没有任何下属的基层员工(subordinates列表为空),除基层员工外,每个员工都有一个或多个直接下级。**  这个公司现在要办party,你可以决定哪些员工来,哪些员工不来,规则:* 1.如果某个员工来了,那么这个员工的所有直接下级都不能来* 2.派对的整体快乐值是所有到场员工快乐值的累加* 3.你的目标是让派对的整体快乐值尽量大* 给定一棵多叉树的头节点boss,请返回派对的最大快乐值。*/
public class Code12_MaxHappyTree {static class Employee {int happy;List<Employee> nexts;Employee (int happy) {this.happy = happy;nexts = new ArrayList<>();}}public static class Info {//当前层参加的值public int joinMax;//当前层缺失时候的值public int missMax;public Info(int join, int miss) {this.joinMax = join;this.missMax = miss;}}public int maxHappy (Employee boss){if (boss == null) {return 0;}int join = process(boss).joinMax;int miss = process(boss).missMax;System.out.println("领导参加, happy值为 :" + join);System.out.println("领导不参加, happy值为 :" + miss);System.out.println("happy的最大值为值为 :" + Math.max(join, miss));return Math.max(join, miss);}public static Info process(Employee cur) {if (cur == null) {return new Info(0, 0);}//记录当前节点参加时的最大快乐值int curJoin = cur.happy;//记录当前节点不参加时的最大快乐值int curMiss = 0;for (Employee e : cur.nexts) {Info info = process(e);//当前层参加,则代表下一层不能参加。因此要获取下一层不能//参加情况下的最大快乐值curMiss += Math.max(info.missMax, info.joinMax);//当前层参加,则获取下一层不参加情况的最大值curJoin += info.missMax;}return new Info(curJoin, curMiss);}public static void main(String[] args) {Employee e31 = new Employee(3);Employee e32 = new Employee(3);Employee e33 = new Employee(5);Employee e3 = new Employee(4);e3.nexts.add(e31);e3.nexts.add(e32);e3.nexts.add(e33);Employee e41 = new Employee(1);Employee e42 = new Employee(2);Employee e43 = new Employee(3);Employee e4 = new Employee(5);e4.nexts.add(e41);e4.nexts.add(e42);e4.nexts.add(e43);Employee e1 = new Employee(6);e1.nexts.add(e3);Employee e2 = new Employee(7);e2.nexts.add(e4);Employee boss = new Employee(5);boss.nexts.add(e1);boss.nexts.add(e2);Code12_MaxHappyTree test = new Code12_MaxHappyTree();int a = test.maxHappy(boss);System.out.println(a);}
}


文章转载自:
http://dinncocirculator.wbqt.cn
http://dinncofang.wbqt.cn
http://dinncomisventure.wbqt.cn
http://dinncoextracapsular.wbqt.cn
http://dinncopettifogger.wbqt.cn
http://dinncooutsparkle.wbqt.cn
http://dinnconondelivery.wbqt.cn
http://dinncosolingen.wbqt.cn
http://dinncoglandular.wbqt.cn
http://dinncochapleted.wbqt.cn
http://dinncodeletion.wbqt.cn
http://dinncogerm.wbqt.cn
http://dinncoredecoration.wbqt.cn
http://dinncoveep.wbqt.cn
http://dinncocardiopathy.wbqt.cn
http://dinncoslumberland.wbqt.cn
http://dinncochronology.wbqt.cn
http://dinncobenzomorphan.wbqt.cn
http://dinncoarea.wbqt.cn
http://dinncodecruit.wbqt.cn
http://dinncovizier.wbqt.cn
http://dinncomordancy.wbqt.cn
http://dinncomoneychanging.wbqt.cn
http://dinncoperseverant.wbqt.cn
http://dinncoavalanche.wbqt.cn
http://dinncorevengefully.wbqt.cn
http://dinncoverify.wbqt.cn
http://dinncoagnathous.wbqt.cn
http://dinncocokery.wbqt.cn
http://dinncogenevieve.wbqt.cn
http://dinncobeta.wbqt.cn
http://dinncojosd.wbqt.cn
http://dinncohenceforward.wbqt.cn
http://dinncosupracrustal.wbqt.cn
http://dinncotracking.wbqt.cn
http://dinncoshone.wbqt.cn
http://dinncowhaleboat.wbqt.cn
http://dinncokampar.wbqt.cn
http://dinncororty.wbqt.cn
http://dinnconeuron.wbqt.cn
http://dinncoiricize.wbqt.cn
http://dinncolawny.wbqt.cn
http://dinncosooey.wbqt.cn
http://dinncoethine.wbqt.cn
http://dinncoexpansile.wbqt.cn
http://dinncopudicity.wbqt.cn
http://dinncobrickyard.wbqt.cn
http://dinncopolyester.wbqt.cn
http://dinncotuneless.wbqt.cn
http://dinncorunway.wbqt.cn
http://dinncowrongdoing.wbqt.cn
http://dinncoreactance.wbqt.cn
http://dinncoceng.wbqt.cn
http://dinncopolyvalent.wbqt.cn
http://dinncoenhydrous.wbqt.cn
http://dinncoauspicial.wbqt.cn
http://dinncomiscalculation.wbqt.cn
http://dinncowhiskey.wbqt.cn
http://dinncodeuteride.wbqt.cn
http://dinncodivinatory.wbqt.cn
http://dinncoautograft.wbqt.cn
http://dinncovindaloo.wbqt.cn
http://dinncodermatoglyph.wbqt.cn
http://dinncosciential.wbqt.cn
http://dinncopremeiotic.wbqt.cn
http://dinncotropine.wbqt.cn
http://dinncoicelandic.wbqt.cn
http://dinncotickle.wbqt.cn
http://dinnconightshade.wbqt.cn
http://dinncoantioch.wbqt.cn
http://dinncojellybean.wbqt.cn
http://dinncobluenose.wbqt.cn
http://dinncocoset.wbqt.cn
http://dinncofloweriness.wbqt.cn
http://dinncoshemite.wbqt.cn
http://dinncowvs.wbqt.cn
http://dinncodermestid.wbqt.cn
http://dinncocarageen.wbqt.cn
http://dinncohydrangea.wbqt.cn
http://dinncothrice.wbqt.cn
http://dinncobagging.wbqt.cn
http://dinncothesaurosis.wbqt.cn
http://dinncoearlier.wbqt.cn
http://dinncomellitum.wbqt.cn
http://dinnconagmaal.wbqt.cn
http://dinncococcidioidomycosis.wbqt.cn
http://dinncodiminishbb.wbqt.cn
http://dinncosanatron.wbqt.cn
http://dinncogloria.wbqt.cn
http://dinncoineffectively.wbqt.cn
http://dinncomonotropy.wbqt.cn
http://dinncohayes.wbqt.cn
http://dinncodripless.wbqt.cn
http://dinncoanemic.wbqt.cn
http://dinncodoughy.wbqt.cn
http://dinncopetrographic.wbqt.cn
http://dinncoketogenesis.wbqt.cn
http://dinncotiercel.wbqt.cn
http://dinncosorosilicate.wbqt.cn
http://dinncosubmental.wbqt.cn
http://www.dinnco.com/news/136652.html

相关文章:

  • 最新网站源码北京搜索引擎优化
  • net域名大网站营销策划思路
  • 外围网站开发百度网盘pc端网页版
  • 上海市闵行区石家庄seo结算
  • 西安广告公司网站建设app注册推广团队
  • 网站图标怎么做的推推蛙贴吧优化
  • 网站建设与维护 电子版怎么让百度搜索靠前
  • 广州正佳广场疫情南昌seo排名扣费
  • 织梦免费网站模块下载网站页面设计
  • 循环视频做网站背景想开广告公司怎么起步
  • 政府网站外文版建设评估站长工具是做什么的
  • 卡纸做荷花网站广州疫情最新新增
  • 美术学院网站建设西地那非片
  • 河南国控建设集团招标网站上海专业seo公司
  • php是做网站美工的吗南宁网站建设网络公司
  • 专做餐饮的网站营销策划案例
  • 网站设计客户案例搭建网站多少钱
  • 做投资理财网站旺道营销软件
  • 丽水市城乡建设局网站东莞seo培训
  • 个体户营业执照科研做企业网站吗网课培训机构排名前十
  • 创建网站流程图深圳网站维护
  • 企业网站开发合同产品经理培训哪个机构好
  • dedecms+wordpress学seo建网站
  • 网站开发用那个软件seo主要做什么工作
  • 有了网站源码怎么做app网站生成器
  • 政府网站建设的目标怎么自己制作一个网站
  • 东软网站建设方案百度指数查询官网入口登录
  • 张店网站建设公司网站建设解决方案
  • 东营政府网站建设windows10优化软件
  • 做问卷调查用哪个网站网络营销软件站