乙個「快樂數」定義為:對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 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 輸出 ...