当前位置: 首页 > article >正文

二叉树层序遍历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;}
};

http://www.lryc.cn/news/2385505.html

相关文章:

  • 【论文精读】2023 AAAI--FastRealVSR现实世界视频超分辨率(RealWorld VSR)
  • IPython 常用魔法命令
  • 数据同步自动化——如何用Python打造高效工具?
  • 开源与闭源之争:AI时代的创新博弈与未来抉择
  • flutter dart class语法说明、示例
  • Java虚拟机 - 程序计数器和虚拟机栈
  • SpringMVC04所有注解按照使用位置划分| 按照使用层级划分(业务层、视图层、控制层)
  • 新能源汽车产业链图谱分析
  • 如何在PyCharm2025中设置conda的多个Python版本
  • 005 深度优先搜索(DFS)算法详解:图解+代码+经典例题
  • maven快速上手
  • cplex12.9 安装教程以及下载
  • 甘特图实例 dhtmlxGantt.js
  • AMD硬件笔试面试题型解析
  • 视频剪辑 VEGAS - 配置视频片段保持原长宽比
  • 力扣 54 .螺旋矩阵
  • 四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API
  • python使用pycharm和conda 设置默认使用清华镜像
  • Prometheus+Grafana实现对服务的监控
  • ARM笔记-ARM伪指令及编程基础
  • Python入门手册:Python基础语法
  • SpringBoot-SpringBoot源码解读
  • CAD如何导出PDF?PDF如何转CAD?详细教程来了
  • python-数据可视化(大数据、数据分析、可视化图像、HTML页面)
  • el-select中自定义 两组el-option,但是key不一样,并且点击需获取当前整个项的所有属性
  • 【笔记】OpenCV的学习(未完)
  • 多模态大语言模型arxiv论文略读(八十七)
  • 《棒球百科》长寿运动排名·棒球1号位
  • Maven 项目打包时添加本地 Jar 包
  • 记录将网站从http升级https