Algorithm之路七:Reverse Integer

来源:互联网 发布:windows电脑如何截屏 编辑:程序博客网 时间:2024/06/11 19:51

题目:

给出一个整数,将整数倒置,并且整数的最长长度为32位,要考虑溢出的情况。


举例:

-123->-321

254235->532452


思路:

通过循环法即可逆置整数,但是需要考虑数据溢出的问题,当数据溢出时,说明数据过大,如果某个数n通过特定计算得到了一个数字,并且这个数组发生了溢出,变成了m,那么m按照n计算时的计算方式倒推n,推出的结果如果和n不同,则说明此时发生了溢出,否则则没有。


代码:

public class Reverse_Integer {public static int reverse(int x) {int rever = 0;int mod = 0;int next = 0;while(true){mod = x % 10;next = rever * 10 + mod;if((next - mod)/10 != rever)return 0;rever = next;x /= 10;if(x == 0)break;}return rever;    }public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println(reverse(1534236469));}}

时间复杂度:

n位输入数组的长度,O(n)

空间复杂度:

O(1)

原创粉丝点击