首页 > 编程语言 >2024. 1华为od机试C卷【传递悄悄话】Python

2024. 1华为od机试C卷【传递悄悄话】Python

时间:2024-03-21 10:58:37浏览次数:29  
标签:val Python max od 2024 que now root 节点

题目

给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。
初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。

输入描述

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

原题

112. 路径总和 - 力扣(LeetCode)

代码

from collections import deque


class TreeNode:
    def __init__(self, val):
        self.val = val
        self.lef = None
        self.rig = None


def list2tree(nums):
    def level(index):
        if index >= len(nums) or nums[index] == -1:
            return None

        root = TreeNode(nums[index])
        root.lef = level(2 * index + 1)
        root.rig = level(2 * index + 2)
        return root

    return level(0)



class Solution:
    def max_time(self, nums):
        root = list2tree(nums)
        if not root:
            return -1
        que_node = deque([root])
        que_val = deque([root.val])
        max_value = 0
        while que_node:
            now = que_node.popleft()
            temp = que_val.popleft()
            if not now.lef and not now.rig:
                if temp > max_value:
                    max_value = max(temp, max_value)
                continue
            if now.lef:
                que_node.append(now.lef)
                que_val.append(now.lef.val + temp)
            if now.rig:
                que_node.append(now.rig)
                que_val.append(now.rig.val + temp)
        return max_value


def main():
    lst = list(map(int, input().split(' ')))
    solution = Solution()
    print(solution.max_time(lst))


if __name__ == "__main__":
    main()

标签:val,Python,max,od,2024,que,now,root,节点
From: https://blog.csdn.net/m0_72215519/article/details/136856768

相关文章

  • 2024-03-21 跳出forEach循环的3个方法
    前言:return无法跳出forEach循环?(()=>{vara=[1,2,3,4,5];a.forEach((e,k)=>{if(k==2)return"";console.log(k);});console.log("=======forEachreturn跳不出循环=======");for(letindex=0;inde......
  • Python函数每日一讲11 - isinstance()
    引言在Python编程中,我们经常需要检查一个对象是否属于某个特定的类或类型。为了实现这个目的,Python提供了isinstance()函数。通过本文的介绍,你将了解isinstance()函数的基本语法、用法示例以及在实际工作中的应用场景,帮助你更好地理解和应用这一函数。语句概览isinstance()函数......
  • 2024年 智能机器人元年 —— 国内的智能机器人(humanoid)公司当下最大的压力(最为急迫的
    可以说,2024年是人形机器人的元年。我国在去年年底将发展智能机器人立为了第一线的重要科技发展方向,并计划在2024年、2025年建立出完整的产业链条,并培育出几家成熟的行业领先的智能机器人公司。而我们把目标从国内移向国外,我们可以看到国外也是同样将这个发展方向定位了首要发展方......
  • 这50个学习Python的爆赞的资源,你用过几个?
    欢迎关注我的专栏:今天给大家分享一下,不同阶段的Python学习者从不同角度量身定制了50个学习资源,建议收藏!01初学者1.Welcometohttp://Python.orghttps://www.python.org/官方Python站点提供了一个开始使用Python生态系统和学习Python的好方法,包括官方文档。2.Lear......
  • 一枚Python老鸟,给Python初学者的建议,希望你们少走弯路!
    Python要学多久可以学会,达到精通呢?任何知识都是基础入门比较快,达到通晓的程序是需求时日的,这是一个逐渐激烈的进程。通晓任何一门编程语言,都需求通过大量的实践来积累经验,解决遇到的各种疑难问题,看别人的源码,分享自己的分码的这个进程,才能够通晓Python的方方面面。一个对......
  • MVC和.net6,API的body在过滤器中重复消费
    在MV中privateasyncTask<string>ReadPostDataAsync(HttpActionContextactionContext,CancellationTokencancellationToken){stringpostData="";varrequestStream=awaitactionContext.Request.Content.ReadAsS......
  • Node.js躬行记(29)——基于Electron的开播助手
    公司其中一个主营业务是直播,目前主播直播会使用客户端开播,客户端中的用户有观众和主播两种身份。但客户端开播并不方便,例如音质没有PC的好,手机长时间直播发热,模拟器操作没有PC方便等。经过讨论,让我们组基于能跨平台的Electron开发PC客户端版本的开播助手,购......
  • 【英伟达】GTC 2024|黄仁勋2小时演讲精华版|六大亮点| Blackwell GPU | DGX B200 | NV
    视频地址:https://www.youtube.com/watch?v=zBIddyiMXsU......
  • 零基础如何自学Python
    1,什么是Python人与人的交流需要人类语言,人与计算机交流(控制计算机)需要计算机语言。Python是众多计算机语言中的一种,每种计算机语言都有它自己的优势。对于初学者来说,Python是最容易上手,也是一门功能强大的计算机语言。2,为什么要学Python对于专业人士,也就是将来想从事......
  • 零基础入门Python全套教程(无偿分享,学完可就业!)
    Python在2017年世界脚本语言排行榜中排名第1,也是多领域首选语言,作为一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员用很少的代码来表达自己的想法。现在Python作为时下越来越流行的编程语言,成为越来越多的人的青睐,越来越多的人开始学习Python,而对于小白来......