当前位置:网站首页>【LeetCode】1161. 最大层内元素和
【LeetCode】1161. 最大层内元素和
2022-08-02 19:21:00 【pass night】
题目
给你一个二叉树的根节点 root
。设根节点位于二叉树的第 1
层,而根节点的子节点位于第 2
层,依此类推。
请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个。
示例 1:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yK3DGt66-1659234515466)(figures/1161. 最大层内元素和/capture.jpeg)]
输入:root = [1,7,0,7,-8,null,null]
输出:2
解释:
第 1 层各元素之和为 1,
第 2 层各元素之和为 7 + 0 = 7,
第 3 层各元素之和为 7 + -8 = -1,
所以我们返回第 2 层的层号,它的层内元素之和最大。
示例 2:
输入:root = [989,null,10250,98693,-89388,null,null,null,-32127]
输出:2
提示:
- 树中的节点数在
[1, 104]
范围内 -105 <= Node.val <= 105
思路
- 遍历每一层 ,求和,判断是否为最大值,若为最大值则记录最大值和层号
代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def maxLevelSum(self, root: Optional[TreeNode]) -> int:
maxSum,layer,currentLayer = -1<<31,0,0
queue = collections.deque([root])
while queue:
currentSum = 0
currentLayer += 1
for _ in range(len(queue)):
cur = queue.popleft()
currentSum += cur.val
if cur.left: queue.append(cur.left)
if cur.right: queue.append(cur.right)
if currentSum>maxSum:
maxSum,layer = currentSum,currentLayer
return layer
复杂度
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( n ) O(n) O(n)
边栏推荐
- Golang sync/atomic 包的原子操作说明
- Jellyfin 打造家庭影院 & 视频硬解 (威联通 QNAP)
- ssh configuration
- Metaverse 001 | Can't control your emotions?The Metaverse is here to help you
- 【C语言刷题】牛客网刷题——替换空格
- PG 之 SQL执行计划
- 【心理学 · 人物】第一期
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- Gradle系列——Gradle的build.gradle文件详情,项目发布(基于Gradle文档7.5)day3-3
- 扫码预约 | 观看Apache Linkis数据处理实践以及计算治理能力
猜你喜欢
TPAMI2022 | TransCL:基于Transformer的压缩学习,更灵活更强大
【心理学 · 人物】第一期
js Fetch返回数据res.json()报错问题
【C语言刷题】Leetcode238——除自身以外数组的乘积
Kali命令ifconfig报错command not found
JVM内存和垃圾回收-05.虚拟机栈
openlayers不常用接口介绍
治疗 | 如何识别和处理消极想法
Detailed explanation of common examples of dynamic programming
安装Mac版Mysql卡在Installation阶段,彻底清理mysql并重装mysql
随机推荐
如何获取EasyCVR平台设备通道的RTMP视频流地址?
es 读流程源码解析
Electron使用指南之初体验
JVM内存和垃圾回收-06.本地方法栈
项目分析(复杂嵌入式系统设计)
【C语言刷题】牛客JZ65——不用四则运算作加法
「面试必会」这应该是最有深度的TCP三次握手、四次挥手细节讲解
聊一聊 AS 的一些好用的功能
J9数字货币论:识别Web3新的稀缺性:开源开发者
我用这一招让团队的开发效率提升了 100%!
Geoserver + mysql + openlayers problem
视频隐写一
一款好用的FAQ搭建工具
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
4KMILES加入艾盛集团,以更强劲的数字商务能力,加速中国跨境电商的全域全效增长
golang刷leetcode动态规划(11)不同路径
详解卡尔曼滤波原理
golang刷leetcode动态规划(12)最小路径和
【C语言刷题】牛客网刷题——替换空格
EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成