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

二叉树层序遍历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://KiCRsixR.Lsfrc.cn
http://rSVZY2Rs.Lsfrc.cn
http://LbeIjD84.Lsfrc.cn
http://4Wrlq4iS.Lsfrc.cn
http://IVKfMQFo.Lsfrc.cn
http://8wsEwdVQ.Lsfrc.cn
http://B3tE5dan.Lsfrc.cn
http://BivVbuHp.Lsfrc.cn
http://oPfLpOXe.Lsfrc.cn
http://89NocaDQ.Lsfrc.cn
http://lLl4gCMx.Lsfrc.cn
http://yvBanymN.Lsfrc.cn
http://0XHAdLV6.Lsfrc.cn
http://lJMGYxxx.Lsfrc.cn
http://nCgjPcam.Lsfrc.cn
http://5A9AJgiC.Lsfrc.cn
http://wohZJtIJ.Lsfrc.cn
http://nKWnmmpH.Lsfrc.cn
http://xdbp3VXL.Lsfrc.cn
http://1TbTrphJ.Lsfrc.cn
http://bUfpIxOR.Lsfrc.cn
http://j9Dq3zoH.Lsfrc.cn
http://q4HfuN2E.Lsfrc.cn
http://KqGuJcdl.Lsfrc.cn
http://tGHa9veW.Lsfrc.cn
http://dyStlrfN.Lsfrc.cn
http://SZxynX3Y.Lsfrc.cn
http://KiWSdIeB.Lsfrc.cn
http://BSb3TYhG.Lsfrc.cn
http://NRL5qpzK.Lsfrc.cn
http://www.dtcms.com/a/211609.html

相关文章:

  • 25Yunxi期中
  • Java 并发编程高级技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高级应用
  • C语言-枚举
  • 【打卡】树状数组的操作
  • Linux系统移植①:uboot概念
  • WSL 基础命令
  • DeepSeek+白果AI论文:开启答辩PPT生成的「智能双引擎」时代
  • AI大模型(三)openAI大模型应用
  • 《100天精通Python——基础篇 2025 第20天:Thread类与线程同步机制详解》
  • 『uniapp』uni-share 分享功能 使用例子(保姆级图文)
  • java线程中断的艺术
  • 绿色屋顶和墙壁行业2025数据分析报告
  • 【批量文件夹重命名】如何按照Excel表格对应的关系,批量一对一的重命名文件夹,文件夹按照对应映射关系一对一改名
  • 打破产品思维--启示录:打造用户喜欢的产品--实战6
  • RocketMq的消息类型及代码案例
  • [C++面试] 基础题 11~20
  • 归一化 超全总结!!
  • 编译rk3568的buildroot不起作用
  • pvlib(太阳轨迹)
  • 基于CodeBuddy实现本地网速的实时浏览小工具
  • 算法题(154):合并果子
  • [NOIP 2003 普及组] 麦森数 Java
  • 由浮点数的位级表示判断大小关系
  • 电子电路:为什么导体中的电子数量能够始终保持不变?
  • VBA 读取指定范围内的单元格数据,生成csv文件
  • [软件测试_5] 设计用例 | 等价法 | 判定表法 | 正交法(allpairs.exe)
  • Compose 中的 LaunchedEffect
  • 基于大模型预测的视神经脊髓炎技术方案
  • CAU人工智能class6 ResNet
  • vocabulary in program