链接:202. 快乐数 - 力扣(LeetCode)
一,题目解析

图形结合:

二,算法原理

快慢双指针
1,定义快慢指针
2,慢指针每次移动一步,快指针一次移动两步
3,判断相遇时的值为1即为快乐数
三,编写代码
class Solution {
public int bitSum(int n){//返回n这个数每一位上的平方和
int sum=0;
while(n != 0){
int t = n % 10;
sum += t * t;
n /= 10;
}
return sum;
}
public boolean isHappy(int n) {
int slow = n,fast = bitSum(n);//slow和fast不相等
while(slow != fast){
slow = bitSum(slow);
fast = bitSum(bitSum(fast));
}
return slow == 1;//slow或者fast等于1就结束
}
}
本文解析了LeetCode中的快乐数问题,介绍了使用快慢双指针方法,通过计算每个数字各位上的平方和来判断是否为快乐数。给出了Solution类的代码实现,包括`bitSum`和`isHappy`方法。

被折叠的 条评论
为什么被折叠?



