JAVA怎么将整数反转_【leetcode刷题】[简单]7.反转整数(reverse integer)-java
反转整数 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相关推荐
- LeetCode刷题(十)----数组-----medium部分(Java、C++)
LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...
- C#LeetCode刷题之#7-反转整数(Reverse Integer)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3838 访问. 给定一个 32 位有符号整数,将整数中的数字进行反 ...
- Leetcode刷题(3)整数反转
最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...
- 卷进大厂系列之LeetCode刷题笔记:反转链表(简单)
学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3 ...
- 学渣的刷题之旅 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 ,即为两个并 ...
- C#LeetCode刷题-数学
数学篇 # 题名 刷题 通过率 难度 2 两数相加 29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 (a ...
- LeetCode刷题实战354:俄罗斯套娃信封问题
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- LeetCode刷题实战355:设计推特
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- C#LeetCode刷题-位运算
位运算篇 # 题名 刷题 通过率 难度 78 子集 67.2% 中等 136 只出现一次的数字 C#LeetCode刷题之#136-只出现一次的数字(Single Number) 53.5% 简单 1 ...
- LeetCode刷题实战276:栅栏涂色
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
最新文章
- 十年AI谁“最能打”?AI 2000榜单:何恺明最佳论文“刷”状元,谷歌机构排名第一...
- 羡慕嫉妒!看了腾讯月收入 8 万 的支出账单不恨了 | 每日趣闻
- python使用什么注释语句和运算-怎么使用python注释语句
- 大叔手记(10):别再让面试官问你单例
- java我的世界1.7.2怎么下载模组_我的世界1.7.2
- volatile不具备原子性
- svg defs 进行定义 引用
- 快速稳定服务器,稳定又快速服务器工具推荐
- Sql SUBSTR函数
- 提高抗打击能力_“玻璃娃娃”不可取,抗打击能力培养很重要,父母别忽视
- iOS 关于布局问题的一些认识
- 【学术杂谈】博士毕业都去哪儿了,谈谈学术的这条路该如何走
- Java从入门到入土
- python的开发环境
- 搜款网根据关键词取商品列表 API 返回值说明
- 中国远程医疗行业发展前景预测和投资规划分析报告2022-2027年
- 关于铭锐办公系统运行节资统计
- 【经验分享】30个使用Python编程的实践、建议和技巧
- 数据分析案例-文本挖掘与中文文本的统计分析
- windows10-conda cmd使用时错误:‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
热门文章
- Linux下将mysql数据导入与导出
- 简易listview与adapter实现列表,ArrayAdapter和BaseAdapter
- python WindroseAxes 报错 has no attribute ‘Appender‘
- jfinal项目部署服务器,jfinal undertow项目再集成JDK,一键安装系统服务,让部署再快一点...
- ELK套件FileBeat部署
- java手机飞行模式_用了这么多年手机才知道,飞行模式还藏着这6个功能!太好用了...
- linux搭建rabbitmq环境,RabbitMQlinux-centos环境配置
- MySQL和SQL Server数据库基本语句总结(二)
- 并不对劲的BJOI2019
- MATLAB 图形着色