每日OJ题_队列_宽搜bfs④_力扣515. 在每个树行中找最大值

目录

力扣515. 在每个树行中找最大值

解析代码


力扣515. 在每个树行中找最大值

515. 在每个树行中找最大值

难度 中等

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。

示例1:

输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]

示例2:

输入: root = [1,2,3]
输出: [1,3]

提示:

  • 二叉树的节点个数的范围是 [0,10^4]
  • -2^31 <= Node.val <= 2^31 - 1
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> largestValues(TreeNode* root) {}
};

解析代码

        思路:层序遍历过程中,在执行让下一层节点入队的时候,我们是可以在循环中统计出当前层结点的最大值的。 因此可以在 bfs 的过程中,统计出每一层结点的最大值。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> largestValues(TreeNode* root) {vector<int> ret;if(root == nullptr)return ret;queue<TreeNode*> q;q.push(root);while(!q.empty()){int sz = q.size(), maxVal = INT_MIN;while(sz--){TreeNode* t = q.front();maxVal = max(maxVal, t->val);q.pop();if(t->left)q.push(t->left);if(t->right)q.push(t->right);}ret.push_back(maxVal);}return ret;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue--------父子/兄弟组件传值

父子组件 子组件通过 props 属性来接受父组件的数据&#xff0c;然后父组件在子组件上注册监听事件&#xff0c;子组件通过 emit 触发事件来向父组件发送数据。 defineProps接收 let props defineProps({data: Array, }); defineModel接收 let bb defineModel("sit…

1.1 操作系统特性

操作系统特性 &#xff08;一&#xff09;并发性 并发性是指两个或两个以上的活动和事件在同一时间间隔内发生。 电脑里的多个程序或任务&#xff0c;它们看起来是同时进行的&#xff0c;但实际上是交替使用CPU的时间片来执行。 简单解释&#xff1a;想象你正在进行一场接力…

AI 时代来临我们要如何面对?

人工智能&#xff08;AI&#xff09;已经引领了人类社会进入了全新的时代&#xff0c;开启了科技进步的崭新篇章。在过去几十年&#xff0c;人工智能技术迅猛发展&#xff0c;并已经逐步融入到我们的日常生活和职场中。 随着科技的不断进步&#xff0c;人工智能已成为社会发展…

2024.2.23力扣每日一题——二叉树中的第 K 大层和

2024.2.23 题目来源我的题解方法一 层序遍历排序 题目来源 力扣每日一题&#xff1b;题序&#xff1a;2583 我的题解 方法一 层序遍历排序 先使用层序遍历计算每一层的和&#xff0c;然后将每一层的和进行排序。 时间复杂度&#xff1a;O(nlogn)。其中 n 是树中的节点数。广…

竞赛常考的知识点大总结(二)基础算法

简单字符串处理 简单字符串处理是指对字符串进行基本操作的一系列技术&#xff0c;这些操作通常包括字符串的创建、复制、比较、查找、替换和分割等。简单字符串处理的特点是操作直观、易于实现&#xff0c;并且在各种编程语言中都有广泛的应用。 特点&#xff1a; 1.操作直…

渐变颜色作图

clear clc close all % 生成 x 值 x linspace(0, 5, 1000); % 计算对应的 y 值&#xff08;二次函数分布&#xff09; y x .^ 2; % 添加一些随机噪声 y y randn(size(y)); clinspace(1,10,length(x)); arry1[x,y]; arry2sortrows(arry1,2,descend); arry3[arry2,c]…

基于单片机和Wi-Fi 技术的家电远程控制系统设计

摘要:根据家用电器的智能开关控制需求,提出基于单片机和Wi-Fi 技术的家电远程控制系统的设计。从硬件与软件两部分对单片机电路、Wi-Fi 电路、继电器电路,及其程序进行设计。设计的家电远程控制系统,经Tlink 物联网平台模拟测试,信号反应无误,为进一步实际应用提供了基础…

C++ 学习10大网站推荐(Bjarne Stroustrup)

(1) Sourceforge(sourceforge.net),这是最著名、历史最悠久、规模最大的开源项目管理网站。 (2)Googlecode(code.google.com),它的访问速度快,是开源项目管理网站的后起之秀。 (3)C++创始人Bjarne Stroustrup的个人网站www2.research.att.com/~bs/applications.html,其中罗…

C缺陷和陷阱-笔记(7)

目录 库函数 一、返回整数的getchar 函数 getchar 函数 二、更新顺序文件 三、缓冲输出与内存分配 程序输出 四、使用errno 检测错误 五、库函数signal 库函数 C语言中没有定义输入/输出语句&#xff0c;任何一个有用的C程序&#xff08;起码必须接受零个或多个输入&am…

求组合背包II(acwing)

题目描述&#xff1a; 给定n组循问&#xff0c;每组询问给定两个整数a&#xff0c;b&#xff0c;请你输出Ca^b mod (1e9 7)的值&#xff0c;。 输入格式&#xff1a; 第一行包含整数n。 接下来2行&#xff0c;每行包含一组a和b。 输出格式&#xff1a; …

类的函数成员(三):拷贝构造函数

一.什么是拷贝构造函数&#xff1f; 1.1 概念 同一个类的对象在内存中有完全相同的结构&#xff0c;如果作为一个整体进行复制或称拷贝是完全可行的。这个拷贝过程只需要拷贝数据成员&#xff0c;而函数成员是共用的&#xff08;只有一份拷贝&#xff09;。 在建立对象…

深入详解MongoDB索引的数据组织结构

MongoDB&#xff0c;作为最受欢迎的NoSQL数据库之一&#xff0c;以其灵活的数据模型和强大的性能而著称。其中&#xff0c;索引是提高MongoDB查询性能不可或缺的一部分。本文将更加深入地探讨MongoDB索引的数据组织结构&#xff0c;揭示其背后的工作原理和优化策略。 目录 一、…

ngrok使用心得记录

1&#xff0c;官网 https://ngrok.com/ 注册(Sign up for free)账号&#xff0c;这里我使用邮箱注册&#xff0c;本来使用github账号登录的&#xff0c;不过需要一个二次短信确认&#xff0c;而且发短信前要先选择国家&#xff0c;国家列表里没有China86&#xff0c;所以只能选…

每天学点儿Python(3) -- for循环

for循环结构格式如下 for 循环变量 in 遍历对象:语句块 举例一、 for i in "Hello"print(i) 执行结果如下 举例二、 #打印100-999之间的水仙花数 #注意&#xff1a;Python中 / 除法&#xff0c;运输后为浮点数, // 为取除法后的整数&#xff0c;而不是C/C中的注释…

Java与Go的并发世界:理解Work Sharing与Work Stealing

概述 最近在理解Golang中的Per P概念&#xff0c;于是我就去Go的源码中挖呀挖&#xff0c;结果挖到了Go的调度器设计。 Golang的调度器设计文档提到了Go中的P(OS线程)调度器使用的是work-stealing调度算法论文。 论文中提到了两个多线程调度算法&#xff1a;work sharing和wor…

【计算机考研】408会炸,还是自命题会炸

自命题是有没有学上的问题。 我记得去年九月一些学校宣布改考408的时候&#xff0c;整个群里都炸了&#xff0c;同学一片哀嚎。要知道九月的时候要重新准备408肯定是不可能了&#xff0c;一来408复习的基础阶段已经过去了&#xff0c;二来英语政治都加入战场了&#xff0c;复习…

电力设备热设计原理(二)

本篇为西安交通大学本科课程《电力设备设计原理》的笔记。 本篇为这一单元的第二篇笔记。上一篇传送门。 电力设备传导换热 主要讨论稳态导热的计算。 通过单层和多层平壁的传导 如上图所示的大平板是一维传导问题&#xff0c;流过平板的热流量和平板两侧温度和平板厚度之间…

vue2使用axios封装请求数据

1、在完成下面的步骤之前&#xff0c;先脚手架创建vue项目&#xff0c;然后再vue项目当中&#xff0c;首先先创建一个文件夹utils&#xff0c;里面放request.js的文件 (1)下载 npm i axios先下载好axios请求依赖 (2)下面的这个文件&#xff0c;包括封装请求&#xff0c;以及拦截…

Docker搭建私有镜像仓库

1.Docker镜像仓库 搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。 官网地址&#xff1a;https://hub.docker.com/_/registry 1.1.简化版镜像仓库 Docker官方的Docker Registry是一个基础版本的Docker镜像仓库&#xff0c;具备仓库管理的完整功能&#xff0c;…

c++的学习之路:6、类和对象(2)

一、 构造函数 如果一个类什么成员都没有&#xff0c;那么他是一个空类吗&#xff1f;在c的创建时&#xff0c;就规定了在类没有成员时&#xff0c;也会有六个默认的成员&#xff0c;简称6个默认成员函数&#xff0c;如下图所示 先介绍一下构造函数&#xff0c;这里就利用代码…