当前位置: 首页 > 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.lryc.cn/news/593597.html

相关文章:

  • 创意 C++ 文本冒险战斗游戏代码
  • Uniapp之自定义图片预览
  • 下一场范式革命:Transformer架构≠最终解法
  • Spring IOC容器在Web环境中是如何启动的(源码级剖析)?
  • Java多线程进阶
  • Node.js net.Socket.destroy()深入解析
  • [spring6: AspectMetadata AspectInstanceFactory]-源码解析
  • 零基础学习性能测试第二章-监控体系
  • OllyDbg技巧学习
  • Redis 如何保证高并发与高可用
  • Python爬虫实战:研究pefile库相关技术
  • PCB 混合介质叠层:材料特性匹配与性能提升的技术解析
  • 1. Spring AI概述
  • OSPF高级特性之Overflow
  • 【c++】提升用户体验:问答系统的交互优化实践——关于我用AI编写了一个聊天机器人……(12)
  • Buildroot vs Yocto:SDK 构建机制的核心差异与实践案例
  • 多线程 示例
  • QT窗口(8)-QFileDiag
  • esp32 sd卡
  • Kubernetes常用命令总结
  • MySQL 深度性能优化配置实战指南
  • 单例模式的设计与实现
  • Salesforce 与外部系统实时集成:基于事件驱动的异步集成架构
  • ChatGPT Agent深度解析:告别单纯问答,一个指令搞定复杂任务?
  • (LeetCode 面试经典 150 题) 49. 字母异位词分组 (哈希表)
  • 软件工程:可行性分析的任务及报告
  • picoCTF 2024: [[NoSQL]] Injection - Writeup
  • JAVA中的Collections 类
  • 【数据结构】二叉树初阶详解(一):树与二叉树基础 + 堆结构全解析
  • windows wsl2-05-docker 安装笔记