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

LeetCode Hot100【7. 整数反转】

7. 整数反转

自己做

解1:求数累加

【LeetCode中不允许溢出操作,要在溢出前判断是否溢出】

class Solution {
public:int reverse(int x) {//cout << x << endl;int reverse_x = 0;      //反转数int number;            //x的位数【10的多少次方可以取出x】int div_num = 1;       //除数int multi_num = 1;     //乘数//首先判断x有多少位【2的10次方是1024】for (int i = 1; i <= 10; i++) {                     if ((x == std::numeric_limits<int>::min() && div_num == 1)) {      //最小值的边界情况【div要从10开始,比如又会报错】}else if (abs(x / div_num) < 10) {     //找到对应位数,退出循环【为防止除数越界,不用等于0的判断】number = i;             break;}div_num *= 10;}//求出各位数字for (int i = 0; i < number; i++) {//判断乘法溢出,迎合LeetCode,LeetCode不允许出现溢出//if (multi_num > std::numeric_limits<int>::max() / 10 && x > 0)//    return 0;//if (-multi_num < std::numeric_limits<int>::min() / 10 && x < 0) {//    return 0;//}int old = reverse_x;int add = (x / div_num) % 10 * multi_num;      //累加的数reverse_x += add;     //不会溢出则累加//判断结果是否溢出,溢出了就直接返回0if (reverse_x % multi_num != old)return 0;div_num /= 10;//迎合LeetCode,LeetCode不允许溢出操作if (i != number -1)multi_num *= 10;}return reverse_x;}
};

 看题解

题解和我反着来,累加的数一直是个位的,这样就避免了溢出的问题(判断下个数是否溢出)

class Solution {
public:int reverse(int x) {int res = 0;while (x != 0) {int temp = x % 10;if (res > std::numeric_limits<int>::max() / 10 || (res == std::numeric_limits<int>::max() / 10 && temp > 7))return 0;if (res < std::numeric_limits<int>::min() / 10 || (res == std::numeric_limits<int>::min() / 10 && temp < -8))return 0;res = res * 10 + temp;x /= 10;}return res;}   };

今日总结

LeetCode判题确实严格,一点溢出都不能有,如果不考虑溢出,应该挺简单的

http://www.dtcms.com/a/288329.html

相关文章:

  • MyBatis动态SQL全解析:五大核心标签实战指南
  • [每日随题11] 贪心 - 数学 - 区间DP
  • 路由器内部电子元器件详解
  • C++数据结构————二叉树
  • 模电基础-电压和电阻
  • RISC采用的3种流水技术的功能和区别分析
  • 【官方】OneCode 3.0 核心技术白皮书:注解驱动、可视编码与 AI 融合
  • 相角补偿全通滤波器设计:相位均衡(0~350Hz,15°超前)
  • 关于如何同步开发板的时间和现在一样:
  • MyBatis分页神器PageHelper深度解析
  • 【深度学习-Day 38】破解深度网络退化之谜:残差网络(ResNet)核心原理与实战
  • openmv小车追小球
  • 如何设计一个软件项目管理系统:架构设计合集(六)
  • QGIS制作的仪表盘工程
  • Redisson RLocalCachedMap 核心参数详解
  • Python工厂方法模式详解:从理论到实战
  • Python绘制数据(三)
  • 创意 C++ 文本冒险战斗游戏代码
  • 2025年水安备考:水利水电安全员C类考试题
  • 高效检测数据突变的MDAM算法详解
  • 模电基础-电阻和功率
  • 网络通信之TCP协议
  • 深入解析HDFS读取流程:短路读优化、零拷贝技术与DFSClient本地缓存策略
  • 【ComfyUI学习笔记02】工作区的整理与注释办法 | 2个节点包推荐
  • 【Linux】如何理解 “一切皆文件”
  • 《一行注解解决重复提交:Spring Boot 接口幂等实战》
  • [硬件电路-40]:从物理世界到数字软件,信号处理的共通性
  • java基础(day11)
  • 突破 MySQL 性能瓶颈:死锁分析 + 慢查询诊断 + 海量数据比对实战
  • Redis布隆过滤器的学习(六)