【刷题记录】7. 整数反转

简介: 【刷题记录】7. 整数反转

一、题目描述


来源:力扣(LeetCode)


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


如果反转后整数超过 32 位的有符号整数的范围[−

网络异常,图片无法展示
|
, $2^{31} − 1],就返回 0。


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


示例 1:


输入:x = 123


输出:321


示例 2:


输入:x = -123


输出:-321


示例 3:


输入:x = 120


输出:21


示例 4:


输入:x = 0


输出:0


提示:


-231 <= x <= 231 - 1


二、思路分析


按照正常思路我们很容易想到


  • 每次对数字取余 n = x % 10 记得到当前位的数字
  • 反转后的数字为 res = res * 10 + n


此时即可得到反转后的数字,但是以为题目要求


如果反转后整数超过 32 位的有符号整数的范围[−

网络异常,图片无法展示
|
, $2^{31} − 1],就返回 0。


  • 所有在每次进行下一位数数组的反转时,要判断res是否已经超出了题目的范围


三、代码实现

class Solution {
    public int reverse(int x) {
        int res =0;
while (x !=0) {
if (res < Integer.MIN_VALUE / 10 || res > Integer.MAX_VALUE / 10) {
                return 0;
            }
            int n = x % 10;
            x /=10;
            res = res * 10+ n;
        }
        return res;
    }
}


复杂度分析


  • 时间复杂度:
    网络异常,图片无法展示
    |
    。翻转的次数即 x 十进制的位数
  • 空间复杂度:
    网络异常,图片无法展示
    |


运行结果


网络异常,图片无法展示
|


总结


这个题目实现的思路来说,还是很容易想到的。
这道题目的重点是在于在于对反转后数组是否在题目规定范围内的处理。

目录
相关文章
|
8月前
|
API
代码随想录 Day5 哈希表1 T242 相同字母的异序词 T349两个数组的交集 T202 快乐数 T1 两数之和(下)
代码随想录 Day5 哈希表1 T242 相同字母的异序词 T349两个数组的交集 T202 快乐数 T1 两数之和(下)
30 0
|
1月前
|
Java
每日一题《剑指offer》数组篇之数组中重复的数字
每日一题《剑指offer》数组篇之数组中重复的数字
41 0
每日一题《剑指offer》数组篇之数组中重复的数字
【剑指offer】- 数组中重复的数字 -48/67
【剑指offer】- 数组中重复的数字 -48/67
|
8月前
|
Serverless 索引
代码随想录 Day5 哈希表1 T242 相同字母的异序词 T349两个数组的交集 T202 快乐数 T1 两数之和(上)
代码随想录 Day5 哈希表1 T242 相同字母的异序词 T349两个数组的交集 T202 快乐数 T1 两数之和
47 0
|
9月前
剑指offer-1.找出数组中重复的数字
剑指offer-1.找出数组中重复的数字
18 0
|
存储 算法 Java
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
41 0
|
C++
剑指offer 01. 找出数组中重复的数字
剑指offer 01. 找出数组中重复的数字
39 0
剑指offer 03. 数组中的重复数字
剑指offer 03. 数组中的重复数字
58 0
剑指offer 03. 数组中的重复数字
力扣刷题记录——258. 各位相加、263.丑数、268.丢失的数字
力扣刷题记录——258. 各位相加、263.丑数、268.丢失的数字
力扣刷题记录——258. 各位相加、263.丑数、268.丢失的数字
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数
124 0
力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数