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