双指针专题:快乐数与盛水最多的容器
一、快乐数
1. 题目解析

2. 原理分析
快乐数有两种情况:
-
数最后变成 1。

-
无限循环但不是 1。

这两种情况都可以抽象成带环链表的问题。
解法:快慢双指针
- 定义快慢指针。
- 慢指针每次向后移动一步,快指针每次向后移动两步。
- 判断相遇时候的值。
3. 代码实现
class Solution {
public:
int BitSum(int n) // 返回每一位数上的平方和
{
int sum = 0;
while (n) {
int m = n % 10;
sum += m * m;
n = n / 10;
}
return sum;
}
bool isHappy(int n) {
int slow = n, fast = (n);
(slow != fast) {
slow = (slow);
fast = ((fast));
}
slow == ;
}
};




