LeetCode Algorithm 202. 快乐数
Posted Alex_996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 202. 快乐数相关的知识,希望对你有一定的参考价值。
Ideas
快乐数的判断逻辑其实挺简单的,按照定义去循环执行就可以了。
关键是如果不是快乐数怎么结束循环。
我们猜测会有以下三种可能:
- 最终会得到 1
- 最终会进入循环
- 值会越来越大,最后接近无穷大
其实我猜到了前两种情况,对于第三种情况,如果出现,那么这题就没法做了,既然这题能做,那就说明第三种情况不会出现。
官方题解给的证明:
Code
Python
class Solution:
def isHappy(self, n: int) -> bool:
visit = set()
while n != 1 and n not in visit:
visit.add(n)
new = list(map(int, list(str(n))))
for i, v in enumerate(new):
new[i] = v ** 2
n = sum(new)
return n == 1
if __name__ == '__main__':
print(Solution().isHappy(19))
以上是关于LeetCode Algorithm 202. 快乐数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点
LeetCode Algorithm 876. 链表的中间结点
LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点