【优选算法】202.快乐数

链接: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就结束}
}