当前位置:网站首页>1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
2022-08-03 19:28:00 【物联黄同学】
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
前言
我超,到月底了,这个月的更新量好低啊, 看来是学校acm集训的强度太高了,yysy,确实有点累,996,外加上平时还有别的事情,已经快007了。。。
月末了,今天刚好又回家了,先写道题目更新一下,后面再更新质量较高的方面和内容。
题目信息
题目链接:1161. 最大层内元素和 - 力扣(LeetCode)
问题简述一下:就是对一颗二叉树,我们求其 层内最大元素和,就是对二叉树的层中,我们求元素和,然后取最大元素和的层数,如果有多层,就取层数最小的。
样例
这次不做输入和输出的处理了,因为我没在本地做测试,直接在leetcode跑了。
输入
[1,7,0,7,-8,null,null]
[989,null,10250,98693,-89388,null,null,null,-32127]
输出
2
2
提示
- 树中的节点数在
[1, 10^4]
范围内 -10^5 <= Node.val <= 10^5
从提示可以知道,最大层内元素和不超过10^(-5),可以用这个值作为初始值。
通过图
解题思路——BFS
不玩花里胡哨的,直接BFS就好了,我们对每一层的节点,求和,然后对和进行取大更新,从而更新答案。
code(C++)
class Solution
{
public:
// bfs
// 采用广度优先,我们可以直接对每一层进行遍历求值
// 在遍历过程中,将节点的子节点加入队列中
// 动态更新最大的层内元素和,和相对最小层
int maxLevelSum(TreeNode* root)
{
queue<TreeNode*> que; // 队列存储节点
int ans = 1; // 初始化答案,默认取第一层
int maxSum = -1e5; // 初始化最大元素和
que.push(root);
int rank0 = 1;
while(!que.empty())
{
// 获取当前层的节点个数
int size = que.size();
int sum = 0;
while(size--)
{
TreeNode* node = que.front();
que.front();
que.pop();
sum += node->val; // 当前层加和
// 如果左右子节点非空,则压入队列中
if(node->left)
{
que.push(node->left);
}
if(node->right)
{
que.push(node->right);
}
}
// 动态更新答案和层内最大元素和
if(sum > maxSum)
{
maxSum = sum;
ans = rank0;
}
++rank0; // 下一层
}
return ans;
}
};
后话
最近发生了很多事情,只能说不管多难,多要努力走下去吧,我相信,虽然路径曲折,但最终还是会走向好的方向!
前行的路上,与君共勉。
边栏推荐
- LeetCode 952. Calculate Maximum Component Size by Common Factor
- Unity gets the actual coordinates of the ui on the screen under the canvas
- ctfshow php特性
- Alibaba senior experts create a learning architecture from scratch, including Alibaba's internal technology stack PPT, PFD actual combat
- Climbing Stairs (7/30)
- InnoDB 中不同SQL语句设置的锁
- Postgresql source code (64) Query execution - data structure and execution process before submodule Executor (2) execution
- LeetCode 952. 按公因数计算最大组件大小
- 虚拟机vmware设置nat模式上网
- Reveal how the five operational management level of hundreds of millions of easily flow system
猜你喜欢
LeetCode 622. Designing Circular Queues
Jingdong cloud released a new generation of distributed database StarDB 5.0
The ecological environmental protection management system based on mobile GIS
JumpServer开源堡垒机完成龙芯架构兼容性认证
安装radondb mysql遇到问题
如何理解即时通讯开发移动网络的“弱”和“慢”
FreeRTOS中级篇
Line the last time the JVM FullGC make didn't sleep all night, collapse
开发即时通讯到底需要什么样的技术,需要多久的时间
LeetCode 952. 按公因数计算最大组件大小
随机推荐
软件测试回归案例,什么是回归测试?
面试突击:什么是粘包和半包?怎么解决?
YAML中多行字符串的配置方法:|+、 |、 |-、 >+、 >、 >-的区别
Shell编程之循环语句
Rust:多线程并发编程
ADS 2023 下载链接
【C语言学习笔记(六)】分支与跳转(if、else、continue、break、switch)
DeepMCP网络详解
Execute the mysql script file in the docker mysql container and solve the garbled characters
阿里巴巴政委体系-第五章、阿里政委体系建设
国产虚拟化云宏CNware WinStack安装体验-5 开启集群HA
花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!
MySQL详细学习教程(建议收藏)
虚拟机vmware设置nat模式上网
Compose原理-compose中是如何实现事件分法的
读取 resources 目录下的文件路径的九种方式,你知道多少?
MySQL读写分离的三种实现方案
flex布局
余弦距离介绍
1-php学习笔记之数据类型