博客
关于我
力扣(LeetCode) -- 算法第七题-- 整数反转
阅读量:343 次
发布时间:2019-03-04

本文共 1150 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要将给定的32位有符号整数反转数字部分,并检查反转后的结果是否超过32位整数的范围。如果超出范围,则返回0。

方法思路

  • 处理符号:首先判断输入整数的符号,处理绝对值部分进行反转。
  • 反转数字:使用循环逐步反转数字,每次取出个位数字并将其添加到结果中。
  • 检查范围:在每一步反转过程中,检查反转后的结果是否会超过32位整数的最大值或最小值。如果超过,立即返回0。
  • 返回结果:如果反转后的结果在范围内,考虑符号并返回结果。
  • 解决代码

    public class Solution {    public int reverse(int x) {        if (x == 0) {            return 0;        }        int sign = x < 0 ? -1 : 1;        long xAbs = Math.abs((long) x);        long reversed = 0;        while (xAbs != 0) {            int digit = (int) (xAbs % 10);            xAbs /= 10;            long temp = reversed * 10 + digit;            if (temp > Integer.MAX_VALUE) {                return 0;            }            if (temp < Integer.MIN_VALUE) {                return 0;            }            reversed = temp;        }        if (sign == -1) {            if (reversed < Integer.MIN_VALUE) {                return 0;            }            return - (int) reversed;        }        return (int) reversed;    }}

    代码解释

  • 符号处理:首先检查输入值是否为0,如果是,则直接返回0。否则,记录符号并处理绝对值部分。
  • 循环反转:使用循环逐步取出数字个位,构建反转后的结果。
  • 范围检查:在每一步反转后,检查结果是否超过整数范围,如果超过,立即返回0。
  • 符号恢复:如果输入值为负数,检查结果是否在最小值范围内,否则返回反转结果。
  • 这种方法确保了在每一步都检查结果是否在允许范围内,从而避免了溢出或错误结果。

    转载地址:http://rbse.baihongyu.com/

    你可能感兴趣的文章
    oracle表空间查询维护命令大全之三(暂时表空间)史上最全
    查看>>
    oracle表访问方式
    查看>>
    Oracle触发器
    查看>>
    Oracle计划将ZGC项目提交给OpenJDK
    查看>>
    oracle账号共享
    查看>>
    Oracle闪回技术(Flashback)
    查看>>
    oracle零碎要点---ip地址问题,服务问题,系统默认密码问题
    查看>>
    oracle零碎要点---oracle em的web访问地址忘了
    查看>>
    Oracle零碎要点---多表联合查询,收集数据库基本资料
    查看>>
    Oracle静默安装
    查看>>
    【Bert101】变压器模型背后的复杂数学【02/4】
    查看>>
    Oracle面试题:Oracle中truncate和delete的区别
    查看>>
    ThreadLocal线程内部存储类
    查看>>
    thinkphp 常用SQL执行语句总结
    查看>>
    Oracle:ORA-00911: 无效字符
    查看>>
    Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
    查看>>
    Tensorflow.python.framework.errors_impl.ResourceExhaustedError:无法分配内存[操作:AddV2]
    查看>>
    TCP基本入门-简单认识一下什么是TCP
    查看>>
    tableviewcell 中使用autolayout自适应高度
    查看>>
    Symbolic Aggregate approXimation(SAX,符号聚合近似)介绍-ChatGPT4o作答
    查看>>