編寫乙個演算法來判斷乙個數n
是不是快樂數。
「快樂數」定義為:對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為1,那麼這個數就是快樂數。
如果n
是快樂數就返回true
;不是,則返回false
。
輸入:19
輸出:true
解釋:12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
建立乙個列表用於存放出現過的數,如果有重複的返回false,因為有重複數字出現說明已經進入死迴圈了。
class
solution
:def
(self, n:
int)
->
bool
: lst =
while n !=1:
if n in lst:
return
false
sm =
0for i in
str(n)
: sm +=
int(i)**2
n = sm
return
true
Leetcode 202 快樂數(最詳細講解)
algorithm 乙個 快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為 1,那麼這個數就是快樂數。示例 輸入 19 輸出 true 解釋 12 92 82 1 2 9 2 82 12 ...
小白學習 leetcode 之202快樂數
編寫乙個演算法來判斷乙個數 n 是不是快樂數。快樂數 定義為 對於乙個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是 無限迴圈 但始終變不到 1。如果 可以變為 1,那麼這個數就是快樂數。如果 n 是快樂數就返回 true 不是,則返回 false...
LeetCode 第 202 場周賽 題解
思路 暴力 簽到題,暴力遍歷即可。class solution return false 複雜度分析 遍歷陣列,時間複雜度o n 沒有使用額外變數,空間複雜度為o 1 思路 數學 根據題意,可以直接將陣列以中心元素為對稱點,兩兩配對,操作的次數相同。所以只需要針對陣列長度奇偶進行分析即可。實現細節 ...