LEETCODE 7 Reverse Integer (JAVA题解)
2016-01-26 13:44
676 查看
https://leetcode.com/problems/reverse-integer/
原题如上,越简单的题目,越考功底。
一般的解题思路,相信大家已经有了。关键是边界情况
关键是,在JAVA中,int都是有符号的,而且最大是2147483647,最小是 -2147483648.
如果一个数是1023456789,正常思维,转换过来是9876543201>2147483647,但这不是一个int 数,自己写一个测试案例,会发现OJ会将这种情况以0作为答案输出
因此,在转换过程中,为了防止溢出,一律要用long类型的数据。
点到即止
解题源代码如下
原题如上,越简单的题目,越考功底。
一般的解题思路,相信大家已经有了。关键是边界情况
关键是,在JAVA中,int都是有符号的,而且最大是2147483647,最小是 -2147483648.
如果一个数是1023456789,正常思维,转换过来是9876543201>2147483647,但这不是一个int 数,自己写一个测试案例,会发现OJ会将这种情况以0作为答案输出
因此,在转换过程中,为了防止溢出,一律要用long类型的数据。
点到即止
解题源代码如下
public int reverse(int x) { //为防止溢出,先转为long long temp=x; //获取符号 int sgn=temp>0?1:-1; temp=sgn*temp; //结果值 long result=0; do{ result=result*10+temp%10; temp/=10; }while(temp>0); //处理溢出情况 if((sgn>0 && result>Integer.MAX_VALUE) || (sgn<0 && result>(long)Integer.MAX_VALUE+1)){ return 0; }else{ return (int)(sgn*result); } }
相关文章推荐
- Java虚拟机专题
- myeclipse反编译插件
- Eclipse 使用过程中 总是自动关闭退出
- sqoop-导入数据出现java.sql.SQLException: Streaming result set com.mysql.jdbc.
- Java web 工作中遇到的一些问题
- Spring4.x with scheduling task
- Struts2之文件下载
- mybatis+springmvc+maven+Extjs配置
- springMvc配置详细讲解
- 消费者模式java多线程之哲学家进餐问题(5人5筷)
- Java内存分配和String类型的深度解析
- spring mvc 文件上传
- struts2 helloworld
- 一个经典例子让你彻彻底底理解java回调机制
- Spring实现AOP的4种方式
- jacob操作office后关闭不掉进程
- Hello Spring Framework——源(Resources)
- Java控制语句——switch语句
- Spring中PropertyPlaceholderConfigurer的使用
- Java基础知识点2:hashCode()方法