二叉树层序遍历6
INT_MIN的用法:
INT_MIN是C/C++ 中的一个宏常量 ,在 <limits.h> (C++ 中也可使用 <climits> )头文件中定义,代表 int 类型能表示的最小整数值 。其用法主要体现在以下方面:
1.初始化变量
在需要找出数据集合(如数组、链表等)中的最大值场景里,常将用于记录最大值的变量初始化为 INT_MIN 。例如:
#include <iostream>
#include <limits.h>
int main() {int arr[] = {10, 5, 20, 8};int maxVal = INT_MIN;for (int num : arr) {if (num > maxVal) {maxVal = num;}}cout << "数组中的最大值是: " << maxVal << endl; return 0;
}
这样初始化能保证在遍历第一个元素时,无论其值是多少,都可更新 maxVal ,进而正确找出集合中的最大值。
2.边界条件判断
在编写算法或程序时,可用于设置边界条件。比如在判断一个整数运算结果是否合法时,可将结果与 INT_MIN 比较。假设编写一个函数计算两个 int 类型数相加,为防止溢出,可进行如下判断:
#include <iostream>
#include <limits.h>
int add(int a, int b) {if (b > 0 && a > INT_MAX - b) { // 防止正溢出// 处理溢出情况,如返回特定值或抛出异常cerr << "加法运算发生正溢出" << endl;return INT_MAX; }if (b < 0 && a < INT_MIN - b) { // 防止负溢出cerr << "加法运算发生负溢出" <<endl;return INT_MIN; }return a + b;
}
int main() {int num1 = 1000000000;int num2 = 2000000000;int result = add(num1, num2);cout << "计算结果: " << result << endl; return 0;
}
3. 检测溢出
在进行整数运算时,通过与 INT_MIN 比较来检测是否发生下溢。例如:
#include <iostream>
#include <limits.h>
int main() {int num = INT_MIN;int sub = num - 1;if (sub > num) { // 正常减法结果应更小,若出现变大则发生下溢std::cerr << "发生下溢" << std::endl;}return 0;
}
515. 在每个树行中找最大值
给定一棵二叉树的根节点 root
,请找出该二叉树中每一层的最大值。
示例1:
输入: root = [1,3,2,5,3,null,9] 输出: [1,3,9]
示例2:
输入: root = [1,2,3] 输出: [1,3]
class Solution {
public:vector<int> largestValues(TreeNode* root) {queue<TreeNode*>que;if(root!=NULL) que.push(root);vector<int>result;while(!que.empty()){int size=que.size();int maxValue=INT_MIN;for(int i=0;i<size;i++){TreeNode*node=que.front();que.pop();maxValue=node->val>maxValue?node->val:maxValue;if(node->left) que.push(node->left);if(node->right) que.push(node->right);}result.push_back(maxValue);}return result;}
};
相关文章:

二叉树层序遍历6
INT_MIN的用法: INT_MIN是C/C 中的一个宏常量 ,在 <limits.h> (C 中也可使用 <climits> )头文件中定义,代表 int 类型能表示的最小整数值 。其用法主要体现在以下方面: 1.初始化变量 …...

【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)
文章目录 一、摘要二、Method2.1 现象(问题)--对应文中隐状态的分析(Analysis of Hidden State)2.2 怎么解决 --对应文中Framework2.2.1 整体流程:2.2.2 HSA模块怎么工作?2.2.2.1 隐藏状态池2.2.2.2 选择性…...

IPython 常用魔法命令
文章目录 IPython 魔法命令(Magic Commands)一、系统与文件操作1. %ls2. %cd和%pwd3. %%writefile4. %run 二、性能分析与计时1. %timeit2. %prun3. %%timeit 三、代码处理与交互1. %load2. %edit3. %store 四、调试与诊断2. …...
数据同步自动化——如何用Python打造高效工具?
友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…...
开源与闭源之争:AI时代的创新博弈与未来抉择
在人工智能技术狂飙突进的今天,开源与闭源之争已不再局限于技术圈的讨论,而是演变为一场关乎技术伦理、商业格局乃至人类文明走向的深度博弈。当Meta的Llama 3开源模型下载量突破百万,当OpenAI的GPT-5继续加固技术壁垒,这场没有硝…...
flutter dart class语法说明、示例
🔹 Dart 中的 class 基本语法 class ClassName {// 属性(字段)数据类型 属性名;// 构造函数ClassName(this.属性名);// 方法返回类型 方法名() {// 方法体} }✅ 示例:创建一个简单的 Person 类 class Person {// 属性String name;…...

Java虚拟机 - 程序计数器和虚拟机栈
运行时数据结构 Java运行时数据区程序计数器为什么需要程序计数器执行流程虚拟机栈虚拟机栈作用虚拟机栈核心结构运行机制 Java运行时数据区 首先介绍Java运行时数据之前,我们要了解,对于计算机来说,内存是非常重要的资源,因为内…...
SpringMVC04所有注解按照使用位置划分| 按照使用层级划分(业务层、视图层、控制层)
目录 一、所有注解按照使用位置划分(类、方法、参数) 1. 类级别注解 2. 方法级别注解 3. 参数级别注解 4. 字段/返回值注解 二、按照使用层级划分(业务层、视图层、控制层) 1、控制层(Controller Layer&#x…...

新能源汽车产业链图谱分析
1. 产业定义 新能源汽车是指采用非常规的车用燃料作为动力来源,综合车辆的动力控制和驱动方面的先进技术,形成的具有新技术、新结构、技术原理先进的汽车。 新能源车包括四大类型:混合动力电动汽车(HEV)、纯电动汽车…...

如何在PyCharm2025中设置conda的多个Python版本
前言 体验的最新版本的PyCharm(Community)2025.1.1,发现和以前的版本有所不同。特别是使用Anaconda中的多个版本的Python的时候。 关于基于Anaconda中多个Python版本的使用,以及对应的Pycharm(2023版)的使用,可以参考…...
005 深度优先搜索(DFS)算法详解:图解+代码+经典例题
📌 什么是深度优先搜索? 深度优先搜索(Depth-First Search,DFS)是算法竞赛和面试中最高频的暴力搜索算法之一。其核心思想是“一条路走到黑”,从起点出发,优先探索最深的节点,直到无…...

maven快速上手
之前我们项目如果要用到其他额外的jar包,需要自己去官网下载并且导入。但是有maven后,直接在maven的pom.xml文件里用代码配置即可,配置好后maven会自动帮我们联网下载并且会自动导入该jar包 在右边的maven中,我们可以看到下载安装…...

cplex12.9 安装教程以及下载
cplex 感觉不是很好找,尤其是教育版,我这里提供一个版本,在下面的图可以看到,不仅可以配置matlab,也可以配置vs,现在拿vs2017来测试一下,具体文件的文件有需要的可以复制下面的链接获取 我用网盘分享了「c…...

甘特图实例 dhtmlxGantt.js
本文介绍了如何使用dhtmlxGantt库创建一个基础的甘特图示例,并对其进行汉化和自定义配置。首先,通过引入dhtmlxgantt.css和dhtmlxgantt.js文件初始化甘特图。接着,通过设置gantt.i18n.setLocale("cn")实现核心文本的汉化࿰…...
AMD硬件笔试面试题型解析
本专栏预计更新60期左右。当前第12期 这个系列通过在各类网上搜索大厂公开的笔试和面试题目,然后构造相关的知识点矩阵,让大家对核心的知识点有更深的认识,这个过程虽然耗时费力,但大厂的很多题目确实非常巧妙,很有代表性。由于官方没有发布过这样的题库,所以文章中的题目…...

视频剪辑 VEGAS - 配置视频片段保持原长宽比
VEGAS 配置视频片段保持原长宽比 右击视频片段 -> 选择【开关】 -> 勾选【保持长宽比】 右击视频片段 -> 点击【属性】 -> 弹出【属性】窗口 点击【媒体】 -> 选择【像素宽高比】为【1,0000(方形)】...

力扣 54 .螺旋矩阵
文章目录 题目介绍题解 题目介绍 题解 代码如下: class Solution {public List<Integer> spiralOrder(int[][] matrix) {List<Integer> res new ArrayList<>();if (matrix.length 0){return res;}int l 0, r matrix[0].length - 1, t 0, b…...

四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API
【API 开发篇 】:使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)?第一步:创建 Serializers (序列化器)第二步:创建 ViewSets (视图集)第三步:配置 URLs (路由)第四步…...
python使用pycharm和conda 设置默认使用清华镜像
将步骤分为Conda配置和PyCharm配置两部分。Conda部分包括添加镜像源、调整优先级、更新环境。PyCharm部分需要根据版本说明如何添加镜像源到项目解释器设置中。同时,需要验证配置是否成功,并提醒常见问题,比如路径错误或缓存问题。需要确保引…...
Prometheus+Grafana实现对服务的监控
PrometheusGrafana实现对服务的监控 前言:PrometheusGrafana实现监控会更加全面,监控的组件更多 Prometheus官网 https://prometheus.io/docs/prometheus/latest/getting_started/ Grafana官网 https://grafana.com/docs/ 一、安装PrometheusGrafana 这…...

ARM笔记-ARM伪指令及编程基础
第四章 ARM伪指令及编程基础 4.1 伪指令概述 4.1.1 伪指令定义 人们设计了一些专门用于指导汇编器进行汇编工作的指令,由于这些指令不形成机器码指令,它们只是在汇编器进行汇编工作的过程中起作用,所以被叫做伪指令。 4.1.2 伪指令特征 …...

Python入门手册:Python基础语法
Python是一种简洁、易读且功能强大的编程语言,非常适合初学者入门。无论你是编程新手,还是有一定编程基础但想学习Python的开发者,掌握Python的基础语法都是迈向高效编程的第一步。本文将详细介绍Python的基本语法,包括变量和数据…...
SpringBoot-SpringBoot源码解读
SpringBoot-SpringBoot源码解读 一、Spring Boot启动过程概述 Spring Boot通过一系列的类和机制,简化了Spring应用的启动流程。当你执行SpringApplication.run()时,Spring Boot会自动完成应用的初始化、环境配置、组件加载、自动配置等任务,…...

CAD如何导出PDF?PDF如何转CAD?详细教程来了
浩辰CAD看图王是一款功能强大的CAD图纸查看与编辑工具,其核心功能之一便是支持CAD与PDF格式的互转。下面是CAD看图王输出PDF和PDF转CAD功能的详细介绍及操作步骤: 一、输出PDF功能 看图王可以将CAD图纸转换为PDF格式,是文件在不同的设备上显…...

python-数据可视化(大数据、数据分析、可视化图像、HTML页面)
通过 Python 读取 XLS 、CSV文件中的数据,对数据进行处理,然后生成包含柱状图、扇形图和折线图的 HTML 报告。这个方案使用了 pandas 处理数据,matplotlib 生成图表,并将图表嵌入到 HTML 页面中。 1.XSL文件生成可视化图像、生成h…...
el-select中自定义 两组el-option,但是key不一样,并且点击需获取当前整个项的所有属性
当el-select中只有一组el-option , 获取点击的当前项的属性 , el-select 绑定:value-keyid 但是 当el-select中有两组el-option ,每组option的key不一致,如下代码所示 <el-selectv-model"sth" change"choosee":value-key"…...

【笔记】OpenCV的学习(未完)
由于只记关键和不懂的部分 希望做到下次再看这部分笔记就记得 所以用词会非常简练 前向传播 输入数据依次经过模型的各层,按照各层定义的运算规则进行计算,最终得到模型预测输出的过程。 单向的信息流动,不涉及模型参数的更新。 助于思考的…...

多模态大语言模型arxiv论文略读(八十七)
MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文标题:MG-LLaVA: Towards Multi-Granularity Visual Instruction Tuning ➡️ 论文作者:Xiangyu Zhao, Xiangtai Li, Haodong Duan, Haian Huang, Yining Li, Kai Chen, Hua Ya…...
《棒球百科》长寿运动排名·棒球1号位
关于长寿运动的排名,运动长寿秘诀: 一、全球公认的「长寿运动」排名 游泳(低冲击、强化心肺) 快走/健走(每日30分钟降低15%早逝风险) 太极拳(平衡力减压,哈佛研究称可延缓衰老&am…...
Maven 项目打包时添加本地 Jar 包
在 Maven 项目开发中,我们经常会遇到需要引入本地 Jar 包的场景,比如使用未发布到中央仓库的第三方库、公司内部自定义工具包,或者处理版本冲突的依赖项。本文将详细介绍如何通过 Maven 命令将本地 Jar 包安装到本地仓库,并在项目…...