当前位置:网站首页>1161. Maximum Sum of Elements in Layer: Hierarchical Traversal Application Problems
1161. Maximum Sum of Elements in Layer: Hierarchical Traversal Application Problems
2022-07-31 17:48:00 【Water palace trifoliate brush diary】
题目描述
这是 LeetCode 上的 1161. 最大层内元素和 ,难度为 中等.
Tag : 「层序遍历」、「BFS」
给你一个二叉树的根节点 root.设根节点位于二叉树的第 层,而根节点的子节点位于第 层,依此类推.
请返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个.
示例 1: 
输入: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
提示:
树中的节点数在 范围内
层序遍历
根据题意,使用 BFS You can perform layer-order traversal.
每次以「层」Expand the unit,Count the element sum of this layer,The maximum layer sum during maintenance processing,and layer depth.
Java 代码:
class Solution {
public int maxLevelSum(TreeNode root) {
Deque<TreeNode> d = new ArrayDeque<>();
int max = -0x3f3f3f3f, depth = 1, ans = 0;
d.addLast(root);
while (!d.isEmpty()) {
int sz = d.size(), cur = 0;
while (sz-- > 0) {
TreeNode t = d.pollFirst();
if (t.left != null) d.addLast(t.left);
if (t.right != null) d.addLast(t.right);
cur += t.val;
}
if (cur > max) {
max = cur; ans = depth;
}
depth++;
}
return ans;
}
}
TypeScript 代码:
function maxLevelSum(root: TreeNode | null): number {
const d: TreeNode[] = new Array<TreeNode>()
let he = 0, ta = 0
d[ta++] = root
let max = -0x3f3f3f3f, depth = 1, ans = 0
while (he < ta) {
let sz = ta - he, cur = 0
while (sz-- > 0) {
const t = d[he++]
if (t.left != null) d[ta++] = t.left
if (t.right != null) d[ta++] = t.right
cur += t.val
}
if (cur > max) {
max = cur; ans = depth
}
depth++
}
return ans
};
时间复杂度: 空间复杂度:
最后
这是我们「刷穿 LeetCode」系列文章的第 No.1161 篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完.
在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码.如果涉及通解还会相应的代码模板.
为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:https://github.com/SharingSource/LogicStack-LeetCode .
在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解.
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地
边栏推荐
- The new telecom "routine", my dad was tricked!
- UVM RAL模型和内置seq
- 【Yugong Series】July 2022 Go Teaching Course 021-Slicing Operation of Go Containers
- 全平台GPU通用AI视频补帧超分教程
- MySQL - single function
- JS基础小练习
- Apache EventMesh 分布式事件驱动多运行时
- All-platform GPU general AI video supplementary frame super-score tutorial
- 抖音根据关键词取视频列表 API
- Flutter 获取状态栏statusbar的高度
猜你喜欢

35 MySQL interview questions and diagrams, this is also easy to understand

Automated testing - web automation - first acquaintance with selenium

TestCafe总结

After Effects tutorial, How to adjust overexposed snapshots in After Effects?

认识异常 (看完这篇你就懂了)

flyway的快速入门教程

Introduction of Jerry voice chip ic toy chip ic_AD14NAD15N full series development

如何识别假爬虫?

C# 之 扑克游戏 -- 21点规则介绍和代码实现

After Effects 教程,如何在 After Effects 中调整过度曝光的快照?
随机推荐
iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
Masterless replication system (1) - write DB when node fails
go mode tidy出现报错go warning “all“ matched no packages
After Effects tutorial, How to adjust overexposed snapshots in After Effects?
【码蹄集新手村600题】不通过字符数组来合并俩个数字
UVM RAL模型和内置seq
如何识别假爬虫?
iNeuOS工业互联网操作系统,设备运维业务和“低代码”表单开发工具
Golang 小数操作之判断几位小数点与四舍五入
Get Douyin Video Details API
[Source code analysis] BeanFactory and FactoryBean
GP 6 overall architecture study notes
无主复制系统(1)-节点故障时写DB
Bika LIMS open source LIMS set - use of SENAITE (detection process)
【源码解析】BeanFactory和FactoryBean
Cache and Database Consistency Solutions
关于柱状图的经典画法总结
保证接口数据安全的10种方式
Masterless Replication System (3)-Limitations of Quorum Consistency
selenium的常见方法及使用