LeetCode 202. 快乐数 Happy Number
Posted zsy-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 202. 快乐数 Happy Number相关的知识,希望对你有一定的参考价值。
解法一:哈希表
class Solution { public: bool isHappy(int n) { set<int> seen; while (n != 1 && !seen.count(n)) //快乐或者存在环跳出 { seen.insert(n); n = getNext(n); } return n == 1; } int getNext(int n) { int totalSum = 0; while (n > 0) { int d = n % 10; totalSum += d * d; n = n / 10; } return totalSum; } };
解法二:快慢指针
class Solution { public: bool isHappy(int n) { int slow = n; int fast = getNext(n); while (slow != 1 && slow != fast) //快乐或者存在环跳出 { slow = getNext(slow); fast = getNext(getNext(fast)); } return slow == 1; } int getNext(int n) { int totalSum = 0; while (n > 0) { int d = n % 10; totalSum += d * d; n = n / 10; } return totalSum; } };
以上是关于LeetCode 202. 快乐数 Happy Number的主要内容,如果未能解决你的问题,请参考以下文章