当前位置:网站首页>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;
}
};
后话
最近发生了很多事情,只能说不管多难,多要努力走下去吧,我相信,虽然路径曲折,但最终还是会走向好的方向!
前行的路上,与君共勉。
边栏推荐
- [Notes] Introduction to machine learning
- net-snmp编译报错:/usr/bin/ld: cannot find crti.o: No such file or directory
- 2022 CCF中国开源大会会议通知(第三轮)
- 友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
- 力扣刷题之求两数之和
- FreeRTOS Intermediate
- 梅科尔工作室-14天华为培训六
- 群辉查看硬盘存储占用的方式
- 开发即时通讯到底需要什么样的技术,需要多久的时间
- Jingdong cloud released a new generation of distributed database StarDB 5.0
猜你喜欢

Alibaba senior experts create a learning architecture from scratch, including Alibaba's internal technology stack PPT, PFD actual combat

告诉你0基础怎么学好游戏建模?

不要再用if-else

Compose原理-compose中是如何实现事件分法的

开发即时通讯到底需要什么样的技术,需要多久的时间

MYSQL误删数据恢复

花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!

按需视觉识别:愿景和初步方案

红日安全内网渗透靶场-VulnStack-1

基础软件与开发语言开源论坛| ChinaOSC
随机推荐
安装radondb mysql遇到问题
ECCV 2022 Oral | 满分论文!视频实例分割新SOTA: IDOL
Postgresql source code (65) analysis of the working principle of the new snapshot system Globalvis
梅科尔工作室-14天华为培训六
flex布局
redis常用命令,HSET,XADD,XREAD,DEL等
告诉你0基础怎么学好游戏建模?
Standard C language learning summary 11
SQL server 实现触发器备份表数据
net-snmp编译报错:/usr/bin/ld: cannot find crti.o: No such file or directory
Cobalt Strike (CS) 逆向初探
梅科尔工作室-14天华为培训七
阿洛的反思
Force is brushed buckle problem for the sum of two Numbers
Solution for no navigation bar after Word is saved as PDF
ECCV2022 | 用于视频问题回答的视频图Transformer
Redis 内存满了怎么办?这样置才正确!
阿里巴巴政委体系-第九章、阿里政委启示录
Interview Blitz: What Are Sticky Packs and Half Packs?How to deal with it?
MySQL超详细安装教程 手把手教你安装MySQL到使用MySQL 最简单的MySQL安装方式,这种方式装,卸载也简单