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

Leetcode7-整数反转

题目链接:7. 整数反转 - 力扣(LeetCode)

题目本身没啥好说的,但是在处理整数溢出的时候,需要注意一下

一开始判断溢出是用:

if (res*10 > INT_MAX || (res*10 + temp) > INT_MAX)

然而这是没有意义的,因为如果乘法已经执行,并且结果溢出了,那么 res * 10 的计算结果将是一个未定义的行为。正确的方法应该为:

if (res > INT_MAX/10 || (res == INT_MAX/10 && temp > 7))

此外使用INT_MAX需进入的是<limits.h>

完整代码

int reverse(int x) {
   int res = 0;
   int flag = 0;
   int temp;
   if (x == -2147483648) x = 2147483647;
   if (x < 0) {
        x = - x;
        flag = 1;
   }
   while(x > 0) {
        temp = x % 10;
        x /= 10;
        if (res > INT_MAX/10 || (res == INT_MAX/10 && temp > 7)){
            return 0;
        }
        res = res*10 + temp;
   }
   if (flag) res = - res;
   return res;
}

相关文章:

  • 使用AI一步一步实现若依前端(14)
  • git无法提交解决方案--! [rejected] master -> master (non-fast-forward)
  • 【亲测有用】数据集成平台能力演示(支持国产数据库DaMeng与KingBase)
  • 解锁下一代开发范式:IntelliJ Idea AI插件全景实战与未来展望
  • element-ui layout 组件源码分享
  • ACL初级总结
  • R+VIC模型融合实践技术应用及未来气候变化模型预测
  • Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发
  • MySQL DBA 运维常用命令
  • 借助AI驱动的DeepBI:优化广告架构,提升营销策略的精准与前瞻性
  • 携程笔试 2025.3.13
  • docker的anythingllm和open-webui压缩包分享(国内镜像拉取,百度云压缩包分享)
  • 交互式可视化进阶(Plotly Dash构建疫情仪表盘)
  • Centos7系统基于docker下载ollama部署Deepseek-r1(GPU版不踩坑)
  • 【C++ STL】 容器详解:queue 学习
  • 从头开始开发基于虹软SDK的人脸识别考勤系统(python+RTSP开源)(五)完整源码已上传!
  • 基于MySQL有用户管理的音乐播放器
  • Java 虚拟机优化指南:CMS垃圾回收器参数调优与性能监控工具详解
  • obeaver 连接oracle 库 模式乱码
  • XXE-labs靶场通关攻略
  • 四川甘孜炉霍县觉日寺管委会主任呷玛降泽被查
  • 复原展出孙吴大墓,江苏首座考古博物馆将开放
  • 第十二届警博会在京开幕:12个国家和地区835家企业参展
  • 中医的千年传承:网络科学描绘其演化之路|PNAS速递
  • 上海与世界|环城生态公园带是上海绿色发展新名片
  • 做街坊们的“健康管家”,她把专科护理服务送上门