亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

[Leetcode] Palindrome Number 回文數(shù)

_Suqin / 864人閱讀

摘要:反轉比較法復雜度時間空間思路回文數(shù)有一個特性,就是它反轉后值是一樣的。代碼逐位比較法復雜度時間空間思路反轉比較有可能會溢出,但我們遍歷每一位的時候其實并不用保存上一位的信息,只要和當前對應位相等就行了。首先,負數(shù)是否算回文。

Palindrome Number
  

Determine whether an integer is a palindrome. Do this without extra space.

反轉比較法 Reverse and Compare 復雜度

時間 O(n) 空間 O(1)

思路

回文數(shù)有一個特性,就是它反轉后值是一樣的。所以我們可以先將其反轉,然后比較反轉數(shù)和原數(shù)是否相等。該方法的問題在于溢出的判斷和處理,我們可以參考反轉整數(shù)中的幾種處理方法。

代碼
javapublic class Solution {
    public boolean isPalindrome(int x) {
        long reverse = 0, original = x;
        if(x<0){
            return false;
        }
        while(x>0){
            reverse *= 10;
            reverse += x % 10;
            x /= 10;
        }
        return original == reverse;
    }
}
逐位比較法 One By One 復雜度

時間 O(n) 空間 O(1)

思路

反轉比較有可能會溢出,但我們遍歷每一位的時候其實并不用保存上一位的信息,只要和當前對應位相等就行了。所以我們可以遍歷一遍先算出數(shù)的長度,再遍歷一遍同時對比前后的對應位。

代碼
javapublic class Solution {
    public boolean isPalindrome(int x) {
        if(x < 0){
            return false;
        }
        int digits = 1;
        int original = x;
        // 計算當前數(shù)的位數(shù),個位數(shù)不用計算,已經(jīng)默認為1
        while(x > 9){
            digits *= 10;
            x /= 10;
        }
        // 逐位比較
        x = original;
        while(x > 0){
            int msd = x / digits;
            int lsd = x % 10;
            if(msd != lsd){
                return false;
            }
            // 去除最高位和最低位
            x -= msd * digits;
            x /= 10;
            digits /= 100;
        }
        return true;
    }
}
后續(xù) Follow Up

Q:在答題之前我需要知道些什么?
A:因為回文的定義原本只適用于字符串,所以我們要先問清楚數(shù)字回文是如何定義的。首先,負數(shù)是否算回文。其次,在計算回文時,我們應該按十進制算還是其他進制,如二進制。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/64384.html

相關文章

  • LeetCode - 009 - 回文數(shù)palindrome-number

    摘要:最后,我們判斷一開始的兩種情況,并返回或者即可。本許可協(xié)議授權之外的使用權限可以從處獲得。 Create by jsliang on 2019-05-22 19:30:42 Recently revised in 2019-05-23 11:42:52 一 目錄 不折騰的前端,和咸魚有什么區(qū)別 目錄 一 目錄 二 前言 三 解題 ?3.1 解題 - 數(shù)組操作 ...

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

    摘要:首尾比較法復雜度時間空間,為所求的長度思路先求記為的長度根據(jù)長度制造掩碼循環(huán)當當最高位等于最低位還有數(shù)字等待判斷最高位通過掩碼和整除取得,最低位通過取余取得判斷過后更新掩碼,刪掉最高位,刪掉最低位注意求長度的如何取得一個的最高位假設答設置一 Palindrome Number Determine whether an integer is a palindrome. Do this w...

    lixiang 評論0 收藏0
  • leetcode 9 Palindrome Number

    摘要:有一點需要注意的是,負數(shù)不算作回文數(shù)。而第題當時的方法是,對整數(shù)取除的余數(shù),即是當前整數(shù)的最后一位。那么它翻轉后一半的數(shù)字之后,應該和前半段的數(shù)字相等,我們將采用這種思路進行解題。 題目詳情 Determine whether an integer is a palindrome. Do this without extra space.題目要求我們在不占用額外空間的前提下,判斷一個整...

    darkbug 評論0 收藏0
  • [Leetcode] Palindrome Permutation 回文變換

    摘要:最笨的方法就是用的解法,找出所有的,然后再用中判斷回文的方法來判斷結果中是否有回文。而中心對稱點如果是字符,該字符會是奇數(shù)次,如果在兩個字符之間,則所有字符都是出現(xiàn)偶數(shù)次。 Palindrome Permutation Given a string, determine if a permutation of the string could form a palindrome. F...

    svtter 評論0 收藏0
  • Leetcode 9 Palindrome Number 回文數(shù)字判定

    摘要:難度本題要求判定一個整數(shù)是否為回文數(shù)字比如都是回文數(shù)字但是不是回文數(shù)字所有負數(shù)都不是回文數(shù)字本題還有一個關鍵要求不能使用額外空間我理解這里的額外空間是指堆空間在程序中不能去額外的什么變量更不用說提升空間復雜度直接上的解法解法 Determine whether an integer is a palindrome. Do this without extra space. Some ...

    ningwang 評論0 收藏0

發(fā)表評論

0條評論

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