当前位置:网站首页>1161. 最大层内元素和 : 层序遍历运用题
1161. 最大层内元素和 : 层序遍历运用题
2022-07-31 17:31:00 【宫水三叶的刷题日记】
题目描述
这是 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
进行层序遍历即可。
每次以「层」为单位进行拓展,统计该层的元素和,维护处理过程中的最大值层数和,以及层深度。
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 原题链接和其他优选题解。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地
边栏推荐
猜你喜欢
ECCV 2022 华科&ETH提出首个用于伪装实例分割的一阶段Transformer的框架OSFormer!代码已开源!...
GP 6 overall architecture study notes
adb shell error error: device unauthorized
21.支持向量机—核函数的介绍
2022年Android 面经总结(附含面试题 | 源码 | 面试资料)
【网络通信三】研华网关Modbus服务设置
Introduction of Jerry voice chip ic toy chip ic_AD14NAD15N full series development
动态规划(一)
你辛辛苦苦写的文章可能不是你的原创
学生管理系统第一天:完成登录退出操作逻辑 PyQt5 + MySQL5.8
随机推荐
【NLP】什么是模型的记忆力!
仿生毛毛虫机器人源码
Mariabackup implements incremental data backup for Mariadb 10.3
20.支持向量机—数学原理知识
你辛辛苦苦写的文章可能不是你的原创
京东获取商品历史价格信息 API
【Yugong Series】July 2022 Go Teaching Course 020-Array of Go Containers
This 985 professor is on fire!After 10 years of Ph.D. supervisor, no one has graduated with a Ph.D.!
TestCafe之如何进行调试
动态规划之线性dp(下)
Jiuqi ny3p series voice chip replaces the domestic solution KT148A, which is more cost-effective and has a length of 420 seconds
INeuOS industrial Internet operating system, the equipment operational business and "low code" form development tools
Combinatorics Notes (6) Associative Algebra of Locally Finite Partially Ordered Sets, Möbius Inversion Formula
组合学笔记(六)局部有限偏序集的关联代数,Möbius反演公式
无主复制系统(3)-Quorum一致性的局限性
无主复制系统(2)-读写quorum
Bika LIMS 开源LIMS集—— SENAITE的使用(检测流程)
21.支持向量机—核函数的介绍
牛客网刷题(三)
无主复制系统(1)-节点故障时写DB