最大层内元素和

题目链接

最大层内元素和

题目描述

注意点

  • 返回层内元素之和 最大 的那几层(可能只有一层)的层号,并返回其中 最小 的那个
  • 树中的节点数在 [1, 10000]范围内
  • -10^5 <= Node.val <= 10^5

解答思路

  • 广度优先遍历树,使用队列存储每一层的节点,遍历一层时,计算该层元素之和的同时将下一层的节点写入到队列中,如果某一层元素和大于此时的最大层内元素和,则将结果更新为该层,同时将最大层内元素和更新为该层元素和

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int maxLevelSum(TreeNode root) {
        int res = 0;
        int maxVal = Integer.MIN_VALUE;
        int depth = 0;
        Deque<TreeNode> deque = new ArrayDeque<>();
        deque.offerLast(root);
        while (!deque.isEmpty()) {
            depth++;
            int size = deque.size();
            int sum = 0;
            for (int i = 0; i < size; i++) {
                TreeNode node = deque.pollFirst();
                sum += node.val;
                if (node.left != null) {
                    deque.offerLast(node.left);
                }
                if (node.right != null) {
                    deque.offerLast(node.right);
                }
            }
            if (sum > maxVal) {
                res = depth;
                maxVal = sum;
            }
        }
        return res;
    }
}

关键点

  • 广度优先遍历的思想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/567164.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何有效地进行汽车制造业文件共享,一文了解

随着数字化转变&#xff0c;企业的业务文件大多通过电子形式在内外部流转。这增加了外发文件数据泄露或被篡改的风险&#xff0c;如何保护外发文件安全已成为企业不容忽视的课题。其中汽车制造业是一个高度依赖文件共享与协作的行业&#xff0c;涉及设计图纸、技术文件、供应链…

TI API ,详情见ti.com

TI API &#xff0c;详情见ti.com TI API 接口开发&#xff0c;实现货品查询、查询订单、自动下单、抢购等功能。

Open Footprint®论坛数据模型Snapshot发布,与您全‘绿’以赴!

正值第55个“&#x1f30d;世界地球日”&#xff0c;The Open Group Open Footprint论坛很高兴地正式宣布《Open Footprint数据模型Snapshot》”的可用性。我们的期望是&#xff0c;一旦被广泛采用&#xff0c;数据模型将大大缓解内部以及范围3排放数据共享问题&#xff0c;有效…

IntelliJ IDEA2020下使用Maven构建Scala 项目

1.创建maven文件 2.进入pom.xml导入依赖 <!--添加spark的依赖--><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.2.1</version></dependency><!--添加scala依…

羊大师解析,夏日消暑羊奶来帮忙

羊大师解析&#xff0c;夏日消暑羊奶来帮忙 炎炎夏日&#xff0c;烈日当空&#xff0c;人们总是寻找各种方式来消暑降温。除了常见的冷饮、空调等&#xff0c;其实还有一种天然、健康的饮品可以帮助我们度过酷暑——那就是羊奶。 羊奶作为一种营养丰富的天然饮品&#xff0c;不…

一文带你掌握yaml文件的使用

在自动化测试数据存储中&#xff0c;比较常见的有csv、json、excel文件等&#xff0c;可能大家忽略了另外一个非常简单、好用的&#xff0c;而且更简洁的文件&#xff0c;那就是咱们今天的主角yaml文件。 yaml文件是一种数据序列化语言&#xff0c;其良好的跨语言、跨平台、易…

CST电磁仿真软件的激励设置和使用场导入【基础教程】

设置平面波激励 确认平面波的特性&#xff01; Simulation > Sources and Loads > Plane Wave 通过Plane Wave在远离观测对象的位置接通场源(Field Source)&#xff0c;进行入射波的仿真分析该功能主要在RCS(Radar Cross Section)和EMS(Electromagnetic Susceptibilit…

vuex数据永久存续

第一步下载 vuex 并创建store下js文件 第二步 npm install vuex-persistedstate 第三步 引用 vuex-persistedstate 配置 plugins 项 import createPersistedState from vuex-persistedstateplugins:[createPersistedState({//存储方式&#xff1a;localStorage\sessionStor…

Linux - tar (tape archive)

tar 的全称是 Tape Archive。它最初是在 Unix 系统中用于将数据写入磁带的工具&#xff0c;但现在它通常用于创建、维护、修改和提取文件的归档文件。尽管 tar 可以用于压缩和解压缩文件&#xff0c;但它本身并不进行压缩&#xff0c;而是通常与 gzip 或 bzip2 等压缩工具一起使…

阿赵UE学习笔记——29、Niagara制作火焰效果

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎&#xff0c;之前简单介绍了Niagara粒子系统&#xff0c;这次用Niagara系统做一个火焰的效果。 一、创建发射器 和之前介绍的一样&#xff0c;先创建一个空白的发射器&#xff1a; 我把这个发射器命名为…

如何利用亚马逊云科技上的Amazon Bedrock构建负责任的AI?

AI安全是最近非常热门的话题&#xff0c;无论是训练数据全生命周期保护、模型安全、AI安全与合规等&#xff0c;今天我们来介绍一个新兴的AI安全话题—负责任(Responsible)的AI 1️⃣什么是负责任的AI&#xff1f; 所谓负责任&#xff0c;就是通过构建AI治理框架&#xff0c;让…

【运营】画像-分析方法

画像&#xff0c;是建立在真实数据基础上的主体代表。 1.分析 现在手上有一些原始数据&#xff0c;需要通过分析来展现出主体真实的使用情况&#xff0c;因为我们是新能源行业&#xff0c;所以这次就拿放电设备的电池、充电设备的机柜、使用电池的用户三个角度来讨论一下如何从…

Fork for Mac v2.42 激活版 Git客户端

Fork for Mac是一款运行在Mac平台上的Git客户端&#xff0c;Fork Mac版具备基本的取、推、提交、修改、创建和删除分支和标签、创建和删除远程备份等功能&#xff0c;还有实用的差异查看器&#xff0c;你可以通过清晰的视图快速发现源代码中的更改。 Fork for Mac v2.42 激活版…

旅游网站制作流程

旅游网站制作流程是一个较复杂的过程&#xff0c;因为它需要结合市场调研、用户需求、内容构建、技术开发等多个方面。在这篇文章中&#xff0c;我将简单介绍一下旅游网站的制作流程&#xff0c;大致分为以下步骤。 第一步&#xff1a;市场调研 在制作旅游网站前&#xff0c;我…

企业级AR人脸特效解决方案,引领美颜新风尚

美摄科技凭借自研AI算法和人脸识别技术&#xff0c;推出了一款面向企业的AR人脸特效解决方案&#xff0c;旨在为企业提供全方位、高品质的人脸美颜效果&#xff0c;助力企业在激烈的市场竞争中脱颖而出。 美摄科技的AR人脸特效解决方案&#xff0c;具备强大的美颜美型功能。通…

服务器基础知识(1)

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;服务器❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 1、什么是服务器 服务器是计算机的一种&#xff0c;它比普通计算机运行更快、负载更高、价格更贵。服务…

springboot整合rabbitMQ系列10 利用插件实现延时消息

插件的安装&#xff0c;本文就不做描述了&#xff0c;插件安装后如下&#xff0c;就说明安装成功了1 添加pom依赖&#xff0c;yml配置就不讲了2 核心类&#xff0c;定义交换机的代码改成如下&#xff0c;其它的定义队列&#xff0c;设置绑定关系&#xff0c;设置死信等&#xf…

virtualbox 网络设置实现主机和虚拟机互相访问

前言 一般来说&#xff0c;virtualbox 虚拟机的上网模式是 NAT。这样虚拟机可以上网并访问宿主机&#xff0c;但宿主机无法访问虚拟机&#xff0c;也无法 ping 通。下面介绍双网卡模式&#xff0c;实现虚拟机和宿主机能够互相访问 ping 通。 双网卡模式 进入虚拟机的网络设置…

linq select 和selectMany的区别

Select 和 SelectMany 都是 LINQ 查询方法&#xff0c;但它们之间有一些区别。 Select 方法用于从集合中选择特定的属性或对集合中的元素进行转换&#xff0c;并返回一个新的集合。例如&#xff1a; var numbers new List<int> { 1, 2, 3, 4, 5 }; var squaredNumbers…

网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)

网络互连 网络互连: 将多台计算机连接在一起, 完成数据共享 数据共享的本质是网络数据传输, 即计算机之间通过网络来传输数, 也叫做网络通信 根据网络互连的规模不同, 将网络划分为局域网和广域网 注意: 局域网和广域网是相对的概念 局域网LAN 又称内网, 局域网和局域网之间在没…