演算法之快樂數 力扣數202

2021-09-29 17:26:03 字數 683 閱讀 7588

乙個「快樂數」定義為:對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為 1,那麼這個數就是快樂數。

示例:輸入: 19

輸出: true

解釋:12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1

使用「快慢指標」思想找出迴圈,有點類似於檢測是否為環形鍊錶那道題:「快指標」每次走兩步,「慢指標」每次走一步,當二者相等時,即為乙個迴圈週期。此時,判斷是不是因為1引起的迴圈,是的話就是快樂數,否則不是快樂數。

如果給定的數字最後會一直迴圈重複,那麼快的指標(值)一定會追上慢的指標(值),也就是兩者一定會相等。如果沒有迴圈重複,那麼最後快慢指標也會相等,且都等於1。

class

solution

while

(slow!=fast);if

(fast==1)

return

true

;else

return

false;}

private

intsquaresum

(int m)

return squaresum;

}}

雜湊 簡單 202 快樂數

題目 編寫乙個演算法來判斷乙個數 n 是不是快樂數。快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和。然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果 可以變為 1,那麼這個數就是快樂數。如果 n 是快樂數就返回 true 不是,則返回 fa...

小白學習 leetcode 之202快樂數

編寫乙個演算法來判斷乙個數 n 是不是快樂數。快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果 可以變為 1,那麼這個數就是快樂數。如果 n 是快樂數就返回 true 不是,則返回 false...

題解 LeetCode 202 快樂數

編寫乙個演算法來判斷乙個數n是不是快樂數。快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為1,那麼這個數就是快樂數。如果n是快樂數就返回true 不是,則返回false。輸入 19 輸出 ...