LeetCode Algorithm 202. 快乐数

Posted Alex_996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 202. 快乐数相关的知识,希望对你有一定的参考价值。

202. 快乐数

Ideas

快乐数的判断逻辑其实挺简单的,按照定义去循环执行就可以了。

关键是如果不是快乐数怎么结束循环。

我们猜测会有以下三种可能:

  1. 最终会得到 1
  2. 最终会进入循环
  3. 值会越来越大,最后接近无穷大

其实我猜到了前两种情况,对于第三种情况,如果出现,那么这题就没法做了,既然这题能做,那就说明第三种情况不会出现。

官方题解给的证明:

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个节点

leetcode 202. Happy Number

LeetCode----202. Happy Number(Java)

[LeetCode&Python] Problem 202. Happy Number