成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Leetcode] Reverse Integer 反轉(zhuǎn)整數(shù)

ad6623 / 881人閱讀

摘要:字符串法復(fù)雜度時間空間思路先將數(shù)字轉(zhuǎn)化為字符串,然后將字符串倒序輸出,并轉(zhuǎn)回數(shù)字。模十法復(fù)雜度時間空間思路通過對數(shù)字模十取余得到它的最低位。除了檢查溢出返回特定值以外,有沒有別的方法處理溢出可以使用代碼塊排除異常。

Reverse Integer
Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

字符串法 復(fù)雜度

時間 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

相關(guān)文章

  • LeetCode - 007 - 整數(shù)反轉(zhuǎn)reverse-integer

    摘要:詳細介紹將其他值轉(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 , 小伙伴們...

    venmos 評論0 收藏0
  • leetcode-Easy-第2期:Reverse Interger

    摘要:題目反轉(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, ...

    Tecode 評論0 收藏0
  • leetcode每日一題-7:整數(shù)反轉(zhuǎn)

    摘要:每日一題整數(shù)反轉(zhuǎn)鏈接整數(shù)反轉(zhuǎn)題目分析題目不是很難但是細節(jié)很多并且不允許存儲位整數(shù)需要考慮很多的東西在之后的代碼部分逐一分析代碼標記一下正數(shù)還是負數(shù)負數(shù)的最小值反轉(zhuǎn)后超出了范圍提前范圍避免下面的報錯依次取出最低 ...

    lvzishen 評論0 收藏0
  • [Leetcode] Palindrome Number 回文數(shù)

    摘要:反轉(zhuǎn)比較法復(fù)雜度時間空間思路回文數(shù)有一個特性,就是它反轉(zhuǎn)后值是一樣的。代碼逐位比較法復(fù)雜度時間空間思路反轉(zhuǎn)比較有可能會溢出,但我們遍歷每一位的時候其實并不用保存上一位的信息,只要和當前對應(yīng)位相等就行了。首先,負數(shù)是否算回文。 Palindrome Number Determine whether an integer is a palindrome. Do this witho...

    _Suqin 評論0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月匯總(100 題攻略)

    摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經(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ū)別...

    tain335 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<