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

019.unsigned溢出

溢出模式

  • 有符号整数溢出是未定义行为,可能导致负数或错误结果
long long M = 9223372036854775807;
cout << M + 1;
//最大值 + 1 (通常变成最小值): -9223372036854775808
long long m=-9223372036854775808;
cout << m - 1;
//最小值 - 1 (通常变成最大值): 9223372036854775807
  • 无符号整数溢出是定义良好的模运算
unsigned int M = 4294967295;
cout << M + 1;
//最大值 + 1 (模运算后): 0
unsigned int m=0;
cout << m-1;
//0 - 1 (模运算后): 4294967295
  • 有符号整形溢出通常编译器有警告,而unsigned溢出通常无警告

  • 有符号整形溢出后比较无意义,而unsigned溢出后比较仍有效

  • 这就是为什么在很多需要处理大编号的图论/树问题中,更倾向于使用 unsigned

例题

求二叉树最大 “ 宽度 ”
leetcode 662

树的 最大宽度 是所有层中最大的 宽度 。

每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。

将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。

思路:

  • 看成完全二叉树,给每个结点编号(根节点编号1)
  • 左儿子编号=父亲 * 2
  • 右儿子编号=父亲 * 2 + 1
  • bfs 层序遍历 :当前层宽度 = 最右侧编号 - 最左侧编号 + 1
  • 不断更新答案即可

层数可以达到上千2^1000,所以我一开始直接无脑Bigint, 极其抽象
后来发现unsigned long long 居然过了?又试了一下unsigned int,也过了……
我们计算 最右侧编号 - 最左侧编号 + 1时只需要它们的相对大小,而宽度不会超过int
即使溢出,由于取模机制,相对大小不变

class Solution {
public:int widthOfBinaryTree(TreeNode* root) {unsigned int ans=0;if(root==nullptr)return ans;queue<pair<TreeNode*,unsigned int>>qu;qu.push(pair(root,1));while(qu.size()){int m;//最左编号int siz=qu.size();for(int i=1;i<=siz;i++){auto cur=qu.front();qu.pop();if(i==1)m=cur.second;//最左if(i==siz)ans=max(ans,cur.second-m+1);//最右if(cur.first->left){//非空qu.push({cur.first->left,cur.second*2});}if(cur.first->right){//非空qu.push({cur.first->right,cur.second*2+1});}}}return ans;}
};
http://www.jsqmd.com/news/128310/

相关文章:

  • Scanner类的常用方法在ACM题型中的操作指南
  • 艾尔登法环帧率突破指南:让你的游戏体验飞起来 [特殊字符]
  • 对六项思考帽进行阐述
  • 2025年陶瓷筷专业制造商推荐,专业的陶瓷筷厂家全解析 - myqiye
  • 如何为不同部门分配独立的知识空间?多租户模式配置指南
  • SillyTavern升级终极指南:零风险数据迁移与快速部署方案
  • console.log 简介
  • 2025年防爆防火柜品牌排名,四门防火柜、易燃易爆防火柜企业推荐与选购指南 - mypinpai
  • anything-llm能否用于舆情预警?社交媒体监听系统构建
  • 科研人必备!MATLAB R2025a 保姆级安装教程,含永久激活方法,下载 - 安装 - 激活一步到位。
  • 3分钟搞定KLayout安装:从新手到专家的完整配置手册
  • 【2025-2026选购指南】高低温低气压试验箱行业权威品牌推荐,应用于电子通信、新能源汽车、航空航天等领域 - 品牌推荐大师1
  • 基于Huber函数和最大相关熵的抗差滤波算法
  • 2025游艇品牌厂商TOP5权威推荐:游艇个性化定制深度测评 - 工业推荐榜
  • 2025年上海注册公司TOP推荐,专业技术+避坑指南 - 财税记事本
  • 2025年推荐BKT保温隔声地暖模块厂家排名,看哪家实力强? - mypinpai
  • GGUF格式解析
  • python基础-第一周
  • 2025可移动悬挂点焊机定制厂家TOP5权威推荐:深度测评指南 - myqiye
  • 下载禅道并且对禅道进行学习
  • 靠谱数字人广告机哪家好?楼宇广告机实力供应商排行榜 - 工业品牌热点
  • 飞猫 M50 5G 免插卡随身 WiFi 评测:双网自动切换 + Wi‑Fi 6,出差/旅播/车载值不值得买? - AIEO
  • 精华软膜哪个牌子好用?2025年12月秋冬换季祛红修复精华软膜盘点 - 资讯焦点
  • 2025运动游艇厂家TOP5权威推荐:知名游艇制造商深度测评 - 工业推荐榜
  • 护肤软膜推荐哪个品牌?2025年12月秋冬换季优选护肤软膜TOP5,快速填平肌肤沟壑 - 资讯焦点
  • GetQzonehistory完整指南:一键备份QQ空间所有历史记录
  • 探秘常熟市东方红木家俱有限公司:产品、技术与价格剖析 - 工业品牌热点
  • 2025年江浙沪地区夹爪厂家综合评析与推荐 - 品牌2025
  • 云服务器安装宝塔面板教程 - deng
  • Unity游戏翻译革命:3步实现多语言无障碍游戏体验