LeetCode第7题整数反转

继续打卡算法题,今天学习的是第LeetCode的第7题整数反转,这道题目是道中等题。算法题的一些解题思路和技巧真的非常巧妙,每天看一看算法题和解题思路,我相信对我们的编码能力有一些帮助。

分析一波题目

123 -> 321

这个题目要求把一个整数反转,我们要想到怎么可以求低位到高位的数呢?

思考一下,我们可以想到除10取模的方法取除。

123为例子。

  • 第一次与10取模:

123 % 10 = 3

123 / 10 = 12

  • 第二次与10取模

12 % 10 = 2

12 / 10 = 1

  • 第三次与10取模

1 % 10 = 1

1 / 10 = 0

发现规律了,其实我们每次取到模数之后,只要从第2位(十位)开始,不断的乘10,直到除的商为0,就可以实现整数反转。

还是以123为例子。

  • 第一次与10取模:

123 % 10 = 3

123 / 10 = 12

我们得到 3

  • 第二次与10取模

12 % 10 = 2

12 / 10 = 1

我们得到 3 * 10 + 2 = 32

  • 第三次与10取模

1 % 10 = 1

1 / 10 = 0

我们得到 32 * 10 + 1 =321

代码实现

c 复制代码
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;  
            rev = rev * 10 + digit;  
        }
        return rev;
    }
}

总结

这是一个正常的推算题,通过举例推算可以发现规律,这个也是解决一些算法题目的思路。

相关推荐
轻语呢喃13 分钟前
JavaScript :事件循环机制的深度解析
javascript·后端
ezl1fe14 分钟前
RAG 每日一技(四):让AI读懂你的话,初探RAG的“灵魂”——Embedding
后端
经典199216 分钟前
spring boot 详解以及原理
java·spring boot·后端
Aurora_NeAr18 分钟前
Apache Iceberg数据湖高级特性及性能调优
大数据·后端
程序员清风29 分钟前
程序员要在你能挣钱的时候拼命存钱!
后端·面试·程序员
课堂剪切板40 分钟前
ch07 题解
算法·深度优先
夜阳朔1 小时前
Conda环境激活失效问题
人工智能·后端·python
白仑色2 小时前
Spring Boot 多环境配置详解
java·spring boot·后端·微服务架构·配置管理
懒斌2 小时前
linux驱动程序
后端
超级小忍2 小时前
在 Spring Boot 中优化长轮询(Long Polling)连接频繁建立销毁问题
java·spring boot·后端