题目
解题方法
设置一个字典dic,当n不在字典中时,计算下一个数并加到字典中,如果下一个数算出来是1,就返回True,否则继续算新的n。如果找到一个n在字典中,就不做循环了直接返回False。
时间复杂度:O(logn)
空间复杂度:O(logn)
代码
class Solution:
def isHappy(self, n: int) -> bool:
dic = {}
while n not in dic:
dic[n] = 1
temp = 0
while n:
temp += (n % 10) ** 2
n //= 10
n = temp
if n == 1:
return True
return False