LeetCode 7 整数反转 - 模运算取位

LeetCode 7 整数反转,数学题,模 10 取最后一位,唯一坑点是溢出判断。


🟡 整数反转

32 位有符号整数反转,溢出返回 0。123 → 321-123 → -321120 → 21


思路很直接:每次模 10 取个位数,加到结果末尾(res = res * 10 + digit),原数除以 10。关键在反转后的数可能超过 int 范围(比如 2147483647 反转过来就爆了),Java 里需要在溢出之前提前判断。

java 复制代码
public int reverse(int x) {
    int res = 0;
    while (x != 0) {
        int digit = x % 10;
        // 提前判断下次运算会不会溢出
        if (res > Integer.MAX_VALUE / 10 ||
           (res == Integer.MAX_VALUE / 10 && digit > 7)) return 0;
        if (res < Integer.MIN_VALUE / 10 ||
           (res == Integer.MIN_VALUE / 10 && digit < -8)) return 0;
        res = res * 10 + digit;
        x /= 10;
    }
    return res;
}

为什么是 7 和 -8?Integer.MAX_VALUE = 2147483647(个位是 7),MIN_VALUE = -2147483648(个位是 -8)。在 res*10 之前判断------如果 res 已经大于 MAX/10,乘 10 必定溢出。如果刚好等于 MAX/10,新的个位数 digit 不能超过 7。负数同理。


这道题你踩过什么坑?或者你用别的语言实现过吗?评论区聊聊,回头复习也方便翻。

相关推荐
lucas_AI1 小时前
Grok 4.6:追平 GPT-5.6 Sol 的半价旗舰,但别只看跑分
人工智能·算法
zephyr052 小时前
链表实现O(n log n)时间复杂度的排序——归并排序详解
java·数据结构·算法
喜欢睡觉2 小时前
双指针判断子序列
算法
贵慜_Derek2 小时前
vLLM-07|MegaMoE 与 FusedMoE:路由相同,算 expert 完全不同
人工智能·算法·llm
机器学习之心2 小时前
基于改进鲸鱼优化算法的CNN-BiLSTM-MATT短期电力负荷预测模型
人工智能·算法·cnn·cnn-bilstm-matt·短期电力负荷预测
windliang2 小时前
Claude Code 源码分析(十):MCP 外部工具如何进入下一轮 Agent 调用
前端·算法·面试
代码地平线2 小时前
C++类与对象(中):默认成员函数与日期类实战
c++·笔记·算法
hansang_IR2 小时前
【题解】可持久化区间仿射区间和(Persistent Range Affine Range Sum)
c++·算法·线段树
XWalnut2 小时前
LeetCode刷题 day37
java·数据结构·算法·leetcode
Smilecoc3 小时前
方向导数与梯度
算法