尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

019.unsigned溢出

019.unsigned溢出
📅 发布时间:2026/6/19 0:08:41

溢出模式

  • 有符号整数溢出是未定义行为,可能导致负数或错误结果
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;}
};

相关新闻

  • Scanner类的常用方法在ACM题型中的操作指南
  • 下载禅道并且对禅道进行学习
  • 精华软膜哪个牌子好用?2025年12月秋冬换季祛红修复精华软膜盘点 - 资讯焦点

最新新闻

  • HsMod终极指南:55+功能全面解析与高效炉石传说插件实战配置
  • 2026嘉峪关黄金回收白银回收铂金回收门店实测|本地正规实体老店无套路门店推荐 - 中安检金银铂钻回收
  • NSK微型滚珠丝杠MSFD1202技术解析
  • 2026重庆黄金回收星级测评榜单|收的顶资质服务双冠领跑 - 奢侈品回收测评
  • Honey Select 2 HF Patch:重新定义游戏体验的完整模组解决方案
  • 终极指南:5分钟搞定RE引擎游戏Mod开发,开启你的游戏改造之旅

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号