侧边栏壁纸
  • 累计撰写 416 篇文章
  • 累计创建 65 个标签
  • 累计收到 145 条评论

目 录CONTENT

文章目录

LeetCode 第七题 整数反转

Z同学
2022-05-03 / 0 评论 / 1 点赞 / 4,112 阅读 / 386 字
温馨提示:
本文最后更新于 2022-10-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 题目

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:
输入:x = 123
输出:321

示例 2:
输入:x = -123
输出:-321

示例 3:
输入:x = 120
输出:21

示例 4:
输入:x = 0
输出:0

提示

  • -231 <= x <= 231 - 1

2. 解题

解题时,思路不清晰。通过学习官方提供的实例实现了算法。

image

class Solution {
  public int reverse(int x) {
        int rev = 0;//翻转后的结果
        while (x != 0) {
            //判断第九位的是,是否会越界,不会就继续。会就结束
            if (rev < Integer.MIN_VALUE / 10 || rev > Integer.MAX_VALUE / 10) {
                return 0;
            }
            int digit = x % 10;  //取整数的最后一位
            x /= 10; //整数不能存储小数,除10之后,个位数将会省略
            rev = rev * 10 + digit; // 翻转后的值*10之后为0+上任何小于10的整数,就是翻转后的结果了。
        }
        return rev;
    }
}

执行用时: 0 ms

内存消耗: 39 MB

代码介绍的思路比较清晰了,就不文字描述了。看代码就能明白了。

参考链接:

题目来源:https://leetcode.cn/problems/reverse-integer

结题思路:https://leetcode.cn/problems/reverse-integer/solution/zheng-shu-fan-zhuan-by-leetcode-solution-bccn/

1

评论区