1. 程式人生 > >算法,取反向整數,LeetCode(7)

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

code 方式 解法 解決問題 取反 余數 數學 編程 反轉

最近在別人的推薦下剛開始接觸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上刷到有意思的算法題貼出來分享。

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