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