描述
有一棵n个节点的树,节点编号是0至n?1,其中0号节点是根节点,i号节点的父亲节点是father[i]。现在要对树浇水,把水撒到根节点上,水会顺着每一条边流下去,从i号节点的父亲流到i号节点需要time[i]的时间,请问需要多久水才能流到所有节点上。
在线评测地址:领扣题库官网
样例1 [-1,0,0] [-1,3,5] 这棵树如下所示: 3/\5 从0到1需要花费3个单位时间,从0到2需要花费5个单位时间,因此花费5个单位时间可以让水流到所有节点上。
解题思路
从根节点向下 bfs,每次记录时间即可。
public class Solution { * @param father: the father of every node * @param time: the time from father[i] to node i * @return: time to flower tree public int timeToFlowerTree(int[] father, int[] time) { // write your code here int n = father.length; //ArrayList G[] = new ArrayList[n]; ArrayList ArrayList Integer G= new ArrayList ArrayList Integer (); for (int i = 0; i i++){ G.add(new ArrayList Integer for (int i = 1; i i++){ G.get(father[i]).add(i); int maxx = 0; Queue Integer eqnode = new LinkedList Integer Queue Integer eqtime = new LinkedList Integer eqnode.offer(0); eqtime.offer(0); while (!eqnode.isEmpty()){ int curnode = eqnode.poll(); int curtime = eqtime.poll(); maxx = Math.max(maxx, curtime); for (int v: G.get(curnode)){ eqnode.offer(v); eqtime.offer(curtime + time[v]); return maxx; }
更多题解参考:九章官网solution
业务背景 目前团队内的开发模式多是面向组件的,UI层和逻辑层均强耦合在一起,由...
大家好,我是Java进阶者,今天小编带大家一起来学习Java技术基础! 一、Calendar...
1.我对着同桌大喊我同桌是猪他对我大喊你同桌才是猪 2.上课时间就像南孚电池,...
文章来源 云科技时代 宁川 在中国的商业数据库界 有一位Oracle的顶流铁粉 这就是...
评估方法主要是通过企业数据对业务的赤诚程度来评估企业应用数据的能力。回顾数...
一、Lambda架构需求 Lambda架构背后的需求是由于MR架构的延迟问题。MR虽然实现了...
许多企业已经迁移到云平台中并发现了它的好处,为此也需要了解一些顶级云存储解...
搞数据的都知道,阿里发明了数据中台,然后中台这个概念就马上成为了国内大多数...
作者:Mintimate 博客: https://www.mintimate.cn Mintimates Blog,只为与你分...
Tailwind CSS 作者 Adam Wathan 宣布了一个新项目:用于 Tailwind CSS 的 JIT 编...