83.Reverse Integer
2016-01-24 20:48
190 查看
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
分析:对一个整数求其从低位到高位进行变化之后的值。对一个整数求其从低位到高位进行变化之后的值。 做这个题目的关键是x低位高位转换之后可能溢出,所以需要提前用long型定义转换之后的结果, 然后再判断是否溢出,溢出则返回0.
Example1: x = 123, return 321
Example2: x = -123, return -321
分析:对一个整数求其从低位到高位进行变化之后的值。对一个整数求其从低位到高位进行变化之后的值。 做这个题目的关键是x低位高位转换之后可能溢出,所以需要提前用long型定义转换之后的结果, 然后再判断是否溢出,溢出则返回0.
/** * 对一个整数求其从低位到高位进行变化之后的值。 做这个题目的关键是x低位高位转换之后可能溢出,所以需要提前用long型定义转换之后的结果, * 然后再判断是否溢出,溢出则返回0. 这个方法是只求正数的转换。但是在开始的时候要加上对int可表示的最小负数特殊处理,因为 * java中的int类型存储长度为32bit * .所以范围是“-2^32”到“2^32-1”;也就是“-2147483648”到“2147483647”。 所以对最小负数求绝对值时会溢出。 * 对拿到的x先判断正负,如果是负数则返回绝对值的处理结果乘以-1。是正数的话就直接返回。 * 在方法的处理过程中,要用long存转换之后的结果,然后再判断是否int溢出,溢出则返回0,不溢出则返回其int。 */ public int reverse(int x) { if (x == -2147483648l) {/* 单独对这个进行判断是因为对最小的负数求绝对值时会溢出,所以需要特别处理 */ return 0; } if (x < 0) { return -1 * reverse(Math.abs(x)); } else { int temp = x; long n = 0; while (temp != 0) { n = n * 10 + temp % 10; temp = temp / 10; } if (n > 2147483647) { return 0; } return (int) n; } }
/** * 做这个题目的关键是x低位高位转换之后可能溢出,所以需要提前用long型定义转换之后的结果, 然后再判断是否溢出,溢出则返回0. * 这个方法是先判断给定的值的正负,然后再进行转换,最后把最初的符号给换回来。 */ public int reverse2(int x) { /* flag表示true的时候是负数,false表示正数 */ boolean flag = false; if (x < 0) { flag = true; x = -x; } /* 计算出除了符号之外的低位高位交换后的结果 */ long temp = x; long n = 0;// 转换之后的结果可能溢出,所以用long型定义转换之后的结果,最后返回的时候再取int while (temp != 0) { n = n * 10 + temp % 10; temp = temp / 10; System.out.println("n = "+n); } /* 换回应该正确返回的符号 */ if (flag == true) { n = -n; } /* 判断返回的值是否溢出,溢出则返回0 */ if (n > 2147483647 || (flag && n < -2147483648l)) { return 0; } return (int) n; }
相关文章推荐
- POJ 3020(二分图之最小路径覆盖)
- 深入浅出Node.js (2) - 模块机制
- java的同步块
- 从关系型数据库到非关系型数据库
- 上传裁剪头像(Jcrop)
- 单片机一些原理
- 实习初体验
- 用自己的数据训练和测试“caffenet”
- maven测试指定类或方法
- C/C++编码规范
- Git操作大全
- LeetCode11. Container With Most Water最容易理解的解法
- JavaWeb图表插件的小研究
- php课程---数组建立表单
- C# 打开指定目录并定位到文件
- hdu 2547 无见无我
- 学习php的socket
- 30 从n个数中随机获取m个数字
- ImageNet Classification with Deep Convolutional Neural Networks论文笔记
- 小Z的袜子(莫队算法)