反转整数 reverse integer

题目

给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123

输出: 321

示例 2:

输入: -123

输出: -321

示例 3:

输入: 120

输出: 21

注意:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [− 2^31, 2^31 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。

代码模板

class Solution {

public int reverse(int x) {

}

}

分析

看到这个题目,首先我们能想到的就是这个数%10,就能得到最后一位,然后再把这个最后一位*10,到下次循环的时候再加上下一次的最后一位。当然要注意的就是,在反转的过程中,判断Integer.MAX_VALUE/10与Integer.MIN_VALUE,如果超过这个值,就需要做限制判断,不让它走到下一个循环。

解答

class Solution {

public int reverse(int x) {

int result = 0;

while(x!=0){

int temp = result * 10 + x%10;

x = x / 10;

if (result > Integer.MAX_VALUE/10||result < Integer.MIN_VALUE/10){

return 0;

}

result = temp;

}

return result;

}

}

补充内容-Integer.MAX_VALUE的坑

对于Integer.MAX_VALUE补充一个东西,下面看一段代码:

for(int i=0;i<=Integer.MAX_VALUE;i++){

...

}

这种for循环乍看是没有什么问题的,但是它是一个死循环!

为什么会是个死循环呢?

首先大家知道int类型的其数值范围是 [− 2^31, 2^31 − 1]。

当我们达到Integer.MAX_VALUE也就是2147483647,二进制则是:0111 1111 1111 1111 1111 1111 1111 1111

当我们加1的时候就会变成:1000 0000 0000 0000 0000 0000 0000 0000。然而第一位是正负号,也就是说会变成:-2147483648。这就是补码的概念

所以这里就会变成-2147483648<=Integer.MAX_VALUE是成立的,于是会继续循环下去,就会造成死循环。

JAVA怎么将整数反转_【leetcode刷题】[简单]7.反转整数(reverse integer)-java相关推荐

  1. LeetCode刷题(十)----数组-----medium部分(Java、C++)

    LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...

  2. C#LeetCode刷题之#7-反转整数(Reverse Integer)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3838 访问. 给定一个 32 位有符号整数,将整数中的数字进行反 ...

  3. Leetcode刷题(3)整数反转

    最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...

  4. 卷进大厂系列之LeetCode刷题笔记:反转链表(简单)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3 ...

  5. 学渣的刷题之旅 leetcode刷题 13.罗马数字转整数

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...

  6. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...

  7. ​LeetCode刷题实战354:俄罗斯套娃信封问题

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  8. ​LeetCode刷题实战355:设计推特

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  9. C#LeetCode刷题-位运算

    位运算篇 # 题名 刷题 通过率 难度 78 子集 67.2% 中等 136 只出现一次的数字 C#LeetCode刷题之#136-只出现一次的数字(Single Number) 53.5% 简单 1 ...

  10. ​LeetCode刷题实战276:栅栏涂色

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. 十年AI谁“最能打”?AI 2000榜单:何恺明最佳论文“刷”状元,谷歌机构排名第一...
  2. 羡慕嫉妒!看了腾讯月收入 8 万 的支出账单不恨了 | 每日趣闻
  3. python使用什么注释语句和运算-怎么使用python注释语句
  4. 大叔手记(10):别再让面试官问你单例
  5. java我的世界1.7.2怎么下载模组_我的世界1.7.2
  6. volatile不具备原子性
  7. svg defs 进行定义 引用
  8. 快速稳定服务器,稳定又快速服务器工具推荐
  9. Sql SUBSTR函数
  10. 提高抗打击能力_“玻璃娃娃”不可取,抗打击能力培养很重要,父母别忽视
  11. iOS 关于布局问题的一些认识
  12. 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走
  13. Java从入门到入土
  14. python的开发环境
  15. 搜款网根据关键词取商品列表 API 返回值说明
  16. 中国远程医疗行业发展前景预测和投资规划分析报告2022-2027年
  17. 关于铭锐办公系统运行节资统计
  18. 【经验分享】30个使用Python编程的实践、建议和技巧
  19. 数据分析案例-文本挖掘与中文文本的统计分析
  20. windows10-conda cmd使用时错误:‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

热门文章

  1. Linux下将mysql数据导入与导出
  2. 简易listview与adapter实现列表,ArrayAdapter和BaseAdapter
  3. python WindroseAxes 报错 has no attribute ‘Appender‘
  4. jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
  5. ELK套件FileBeat部署
  6. java手机飞行模式_用了这么多年手机才知道,飞行模式还藏着这6个功能!太好用了...
  7. linux搭建rabbitmq环境,RabbitMQlinux-centos环境配置
  8. MySQL和SQL Server数据库基本语句总结(二)
  9. 并不对劲的BJOI2019
  10. MATLAB 图形着色