华为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
说明:
 

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)

 

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 04:56:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 04:56:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 04:56:03       82 阅读
  4. Python语言-面向对象

    2024-01-17 04:56:03       91 阅读

热门阅读

  1. 工具一本通--Jmeter

    2024-01-17 04:56:03       57 阅读
  2. 【DB】Redis缓存优化策略之,缓存预热与缓存清除

    2024-01-17 04:56:03       58 阅读
  3. Android Fragment 生命周期

    2024-01-17 04:56:03       60 阅读
  4. FF++数据集下载脚本代码

    2024-01-17 04:56:03       46 阅读