摘要:字符串法復雜度時間空間思路先將數字轉化為字符串,然后將字符串倒序輸出,并轉回數字。模十法復雜度時間空間思路通過對數字模十取余得到它的最低位。除了檢查溢出返回特定值以外,有沒有別的方法處理溢出可以使用代碼塊排除異常。
Reverse Integer
Reverse digits of an integer.字符串法 復雜度Example1: x = 123, return 321
Example2: x = -123, return -321
時間 O(n) 空間 O(n)
思路先將數字轉化為字符串,然后將字符串倒序輸出,并轉回數字。記得需要去除首部多余的0。
模十法 復雜度時間 O(n) 空間 O(1)
思路通過對數字模十取余得到它的最低位。其實本題考查的是整數相加的溢出處理,檢查溢出有這么幾種辦法:
兩個正數數相加得到負數,或者兩個負數相加得到正數,但某些編譯器溢出或優化的方式不一樣
對于正數,如果最大整數減去一個數小于另一個數,或者對于負數,最小整數減去一個數大于另一個數,則溢出。這是用減法來避免加法的溢出。
使用long來保存可能溢出的結果,再與最大/最小整數相比較
代碼public class Solution { public int reverse(int x) { long result = 0; int tmp = Math.abs(x); while(tmp>0){ result *= 10; result += tmp % 10; if(result > Integer.MAX_VALUE){ return 0; } tmp /= 10; } return (int)(x>=0?result:-result); } }
2018/10
func reverse(x int) int { // The reserse of MinInt32 will overflow if x == math.MinInt32 { return 0 } sign := 1 // Handle negative numbers if x < 0 { x = -x sign = -1 } result := 0 for x > 0 { rem := x % 10 // When the result == MaxInt32/10, the reminder has to be smaller than 7 // so that result*10 + rem won"t overflow (MaxInt32 is 2147483647) if math.MaxInt32/10 < result || (math.MaxInt32/10 == result && rem > 7) { return 0 } result = result*10 + rem x = x / 10 } return result * sign }后續 Follow Up
Q:拿到反轉整數題目后第一步是什么?
A:先問出題者尾部有0的數字反轉后應該是什么形式,其次問清楚溢出時應該返回什么。
Q:除了檢查溢出返回特定值以外,有沒有別的方法處理溢出?
A:可以使用try-catch代碼塊排除異常。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64388.html
摘要:詳細介紹將其他值轉成數字值。此方法更改數組的長度。詳細介紹解題思路首先,將傳入的數字轉換成字符串,并分割成數組。本許可協議授權之外的使用權限可以從處獲得。 Create by jsliang on 2019-05-19 09:42:39 Recently revised in 2019-05-19 16:08:24 Hello 小伙伴們,如果覺得本文還不錯,記得給個 star , 小伙伴們...
摘要:題目反轉整數反轉后的整數如果不在范圍則返回簡單解法耗時解法二獲取余數,即從右邊第一位開始的數字保留整數部分解題思路跳出循環,判斷是否在最大值和最小值之間知識點復習小于的最大整數返回四舍五入返回的整數部分,包含正負號 題目 Given a 32-bit signed integer, reverse digits of an integer. 反轉整數反轉后的整數如果不在[?2^31, ...
摘要:每日一題整數反轉鏈接整數反轉題目分析題目不是很難但是細節很多并且不允許存儲位整數需要考慮很多的東西在之后的代碼部分逐一分析代碼標記一下正數還是負數負數的最小值反轉后超出了范圍提前范圍避免下面的報錯依次取出最低 ...
摘要:反轉比較法復雜度時間空間思路回文數有一個特性,就是它反轉后值是一樣的。代碼逐位比較法復雜度時間空間思路反轉比較有可能會溢出,但我們遍歷每一位的時候其實并不用保存上一位的信息,只要和當前對應位相等就行了。首先,負數是否算回文。 Palindrome Number Determine whether an integer is a palindrome. Do this witho...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...
閱讀 1342·2021-09-24 10:26
閱讀 3655·2021-09-06 15:02
閱讀 604·2019-08-30 14:18
閱讀 576·2019-08-30 12:44
閱讀 3119·2019-08-30 10:48
閱讀 1936·2019-08-29 13:09
閱讀 1993·2019-08-29 11:30
閱讀 2279·2019-08-26 13:36