LeetCode算法7:java 整数反转

问题:
示例 1:
输入: 123
输出: 321

示例 2:
输入: -123
输出: -321

示例 3:
输入: 120
输出: 21

注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

问题说明
问题的难度适中,主要考虑数学思维,已经计算机中对于边界的处理技巧。这里有个非常有趣的问题,对于溢出的数据,需要返回0。但是在计算机中,是不能真正让数据溢出的现象出现的。
因此如何在数据溢出前判定其会溢出的可能,是该问题的核心难点。

代码

package _01_50;
public class _07ReverseInteger{
	public int reverse(int x){
		int out = 0;
		while(true){;
			if(out < (Integer.MIN_VALUE/10)) return 0;
			if(out> (Integer.MAX_VALUE/10))return 0;
			if(x<0){
				if((Integer.MIN_VALUE - x%10)>out*10) return 0;
				}	
			if(x>0){
				if((Integer.MAX_VALUE - x%10)

参考:
JAVA判断整数溢出

你可能感兴趣的:(LeetCode)