【Leetcode-easy】Reverse Integer
2015-11-16 16:13
211 查看
思路:取绝对值,反转,并判断反转的结果是否大于最大整数,需要注意的细节:判断时需要这样:result > (Integer.MAX_VALUE - v) / 10 否则result * 10 + v% 10 > Integer.MAX_VALUE左边会直接出现溢出。最后加上符号位。
public int reverse(int x) { if(x==Integer.MIN_VALUE){ return 0; } //然后取绝对值,判断绝对值不大于Integer.MAX_VALUDE,不能直接用result拼接判断,否则会溢出。 //例如result * 10 + v% 10 > Integer.MAX_VALUE ,result为反转结果,v为最后一位,也是上一个原始数截取的余数. //左边很可能就会溢出,因此需要反转来判断 :result > (Integer.MAX_VALUE - v) / 10 int absx=Math.abs(x); int result=0; while(absx!=0){ int v=absx%10; //余数,作为反转后的连接位 if(result>(Integer.MAX_VALUE-v)/10){ //溢出 return 0; } //如果不溢出,则连接下一位 result=(result*10+v); absx/=10; //原始数去掉最后一位,重复上述截取连接步骤 } //如果原始数为负数,则返回负数,否则直接返回 return x>0?result:-result; }
相关文章推荐
- 7.首页、bitmaputils
- 如何在android style文件中使用自定义属性
- 利用FS寄存器得到任意函数地址
- 08(maven+SSH)网上商城项目实战之使用nexus搭建maven私有服务器
- 获取项目在服务其中的真实路径的工具类
- 关于Ajax ,jQuery以及jQuery Ajax 编程 (一)
- leetcode Majority Element
- 移动端网络优化
- eventbus
- IConfigurationSectionHandler 接口
- 表单重复提交问题解决
- 大数据量下高并发同步的讲解(不看,保证你后悔)
- spark graphx: creat an graph from csv
- Js获取当前日期时间及其它操作
- GreenDao使用入门
- mysql重复数据下,删除一条重复数据
- 内存检测工具valgrind
- 6.请求网络步骤
- 虚拟服务器使用E1000E类型的网卡,可能会 导致故障转移功能通信异常,不稳定
- JAVA加密C++解密简单方法