您的位置:首页 > 新闻 > 热点要闻 > 公司装修费会计分录_毕业生登记表自我鉴定模板_seo优化软件购买_北京做网站的公司排行

公司装修费会计分录_毕业生登记表自我鉴定模板_seo优化软件购买_北京做网站的公司排行

2025/8/27 2:22:37 来源:https://blog.csdn.net/arnold66/article/details/144487897  浏览:    关键词:公司装修费会计分录_毕业生登记表自我鉴定模板_seo优化软件购买_北京做网站的公司排行
公司装修费会计分录_毕业生登记表自我鉴定模板_seo优化软件购买_北京做网站的公司排行

前言

        工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人,也希望能和看到此文的大神们沟通交流,提升自己,更希望在此期间能够找到一份理想的工作。

题目描述

        给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。

        初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。

输入

给定二叉树
0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2
注: -1 表示空节点

输出

返回所有节点都接收到悄悄话花费的时间
38

示例

示例1

输入:
0 9 20 -1 -1 15 15 7 -1 -1 -1 -1 3 2
输出:
38

解题思路

        使用 深度优先搜索 (DFS) 来解决此问题,递归遍历整棵树,计算从根节点传递到最远叶子节点的时间。

题解

Java实现

package huawei.e100;import java.util.Scanner;/**
* @author arnold
* @date 2024年12月14日
*/
public class T21 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {String[] tmp = sc.nextLine().split(" ");int[] data = new int[tmp.length];// 最大消耗时间即为传递时间int maxTime = getTime(data, 0);System.out.println(maxTime);}}static int getTime(int[] data, int index){if(index >= data.length) {return 0;}// 二叉树左支 坐标 index*2+1 int left = getTime(data, index*2 + 1);// 二叉树右支 坐标 index*2+2int right = getTime(data, index*2 + 2);// 通过递归获取最大值int max = Math.max(left, right);return data[index] + max;}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com