LeetCode-202-快樂數(shù)

編寫一個(gè)算法來判斷一個(gè)數(shù) n 是不是快樂數(shù)。

「快樂數(shù)」定義為:對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)字的平方和,然后重復(fù)這個(gè)過程直到這個(gè)數(shù)變?yōu)?1,也可能是 無限循環(huán) 但始終變不到 1。如果 可以變?yōu)? 1,那么這個(gè)數(shù)就是快樂數(shù)。

如果 n 是快樂數(shù)就返回 True ;不是,則返回 False 。

示例:

輸入:19
輸出:true
解釋:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/happy-number

解題思路

解決一個(gè)問題:如何判斷是否會(huì)無限循環(huán)
可以借助之前寫過的判斷鏈表是否有環(huán),這里將節(jié)點(diǎn)換成數(shù)字罷了
仍然是快慢指針,一個(gè)一次"走一格",另一個(gè)一次"走兩格",如果相遇時(shí)不為1則說明有死循環(huán)

代碼

class Solution {
    private int getNext(int n) {
        int result = 0;
        while (n != 0) {
            result += Math.pow(n % 10, 2);
            n /= 10;
        }
        return result;
    }

    public boolean isHappy(int n) {
        int slow = n, quick = getNext(n);
        while (slow != quick) { // 存在閉環(huán)則跳出
            if (slow == 1 || quick == 1) {
                return true;
            }
            slow = getNext(slow);
            quick = getNext(getNext(quick));
        }
        return slow == 1;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 編寫一個(gè)算法來判斷一個(gè)數(shù) n 是不是快樂數(shù)。 「快樂數(shù)」定義為:對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)...
    濱巖閱讀 169評(píng)論 0 0
  • 來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/happy-...
    entre_los_dos閱讀 313評(píng)論 0 0
  • 一、題目描述 編寫一個(gè)算法來判斷一個(gè)數(shù)是不是“快樂數(shù)”。一個(gè)“快樂數(shù)”定義為:對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它...
    書瓖果fifty閱讀 247評(píng)論 0 0
  • 題目 編寫一個(gè)算法來判斷一個(gè)數(shù)是不是“快樂數(shù)”。 一個(gè)“快樂數(shù)”定義為:對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位...
    LonnieQ閱讀 80評(píng)論 0 1
  • 編寫一個(gè)算法來判斷一個(gè)數(shù) n 是不是快樂數(shù)。 「快樂數(shù)」定義為:對(duì)于一個(gè)正整數(shù),每一次將該數(shù)替換為它每個(gè)位置上的數(shù)...
    放下梧菲閱讀 85評(píng)論 0 0

友情鏈接更多精彩內(nèi)容