华为OD机试真题-传递悄悄话-2023年OD统一考试(C卷)

题目描述:

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

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

输入描述:

给定二叉树

0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2

注:-1表示空节点

输出描述:

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

补充说明:

示例1

输入:

0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2

输出:

38

说明:

python 复制代码
from collections import deque

queue = deque()
result = 0

def check(index, nums, father):
    global result
    if index < len(nums) and nums[index] != -1:
        nums[index] += nums[father]
        queue.append(index)
        if nums[index] > result:
            result = nums[index]

if __name__ == "__main__":
    input_str = input()
    tmp2 = input_str.split(" ")
    nums = [int(num) for num in tmp2]

    queue.append(0)
    while queue:
        father = queue.popleft()
        check(2 * father + 1, nums, father)
        check(2 * father + 2, nums, father)

    print(result)
相关推荐
安迪小宝7 分钟前
python基础语法13-装饰器
开发语言·前端·python
小八四爱吃甜食8 分钟前
【R语言绘图】圈图绘制代码
开发语言·r语言
残月只会敲键盘8 分钟前
C++ Lambda表达式简明指南:新手快速上手
开发语言·c++
Niuguangshuo22 分钟前
Python设计模式:策略模式
python·设计模式·策略模式
liwulin050626 分钟前
【JAVA】JVM 堆内存“缓冲空间”的压缩机制及调整方法
java·开发语言·jvm
Mysticbinary31 分钟前
Python 迭代器和生成器概念
python·迭代器·生成器
kaka.liulin -study33 分钟前
Multi Agents Collaboration OS:数据与知识协同构建数据工作流自动化
人工智能·python·深度学习·数据分析
Simon—欧阳38 分钟前
C#异步方法返回Task<T>的同步调用
开发语言·前端·javascript
红队it1 小时前
【机器学习算法】基于python商品销量数据分析大屏可视化预测系统(完整系统源码+数据库+开发笔记+详细启动教程)✅
python·机器学习·数据分析
michaelzhouh1 小时前
php调用大模型应用接口实现流式输出以及数据过滤
开发语言·php·php调用大模型api流式输出