本文主要是介绍华为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 dequequeue = deque()
result = 0def check(index, nums, father):global resultif 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)
这篇关于华为OD机试真题-传递悄悄话-2023年OD统一考试(C卷)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!