算法,取反向整数,LeetCode(7)

最近在别人的推荐下刚开始接触LeetCode,一个非常不错的在线编程刷题网站,java小白目前还在刷简单的算法题,不过挺有意思的。昨天碰到一个反向整数算法题,想了好久没写出答案,在网上搜了答案,贴在这里,我是觉得算法题跟做数学很相似,苦苦解不开一个题可能是我们的思维方式出现了问题,通过看别人写的代码,仔细分析别人的思维逻辑,反思自己与别人解决问题逻辑上的差异,为什么别人可以想到这种解法,进而来提升自己的算法能力,越来越觉得编程是件有趣的事了。

题目如下:输入一个int 类型的整数,结果输出一个反向整数。

  例如 输入1234,运行代码后得到结果4321.

    或者输入  -1234, 输出-4321.

    同时还要考虑到假定输入为32位有符号整数。 当反转的整数溢出时,你的函数应该返回0。

    public class Solution {
      public int reverse(int x) {
        int y=0;
        int n;    //接收余数
        while( x != 0){
        n = x%10;
        if (y > Integer.MAX_VALUE/10 || y < Integer.MIN_VALUE/10){    //如果反转后整数溢出,return 0.
          return 0;
        }
        y = y*10 + n;
        x /= 10;
        }
        return y;
      }
    }

希望对看到的同为java小白的朋友能有帮助,以后我还会把在LeetCode上刷到有意思的算法题贴出来分享。

 

posted @ 2017-08-05 09:47  哒哒哒大大诚  阅读(1634)  评论(0编辑  收藏  举报