LeetCode - 202. 快乐数

题目

202. 快乐数 - 力扣(LeetCode)

思路

先模拟出所有的情况

根据情况1和情况2发现,无论哪种情况,都能成环,只是一个是环里都是1,一个是环里不为1,所以这里仅需判断能否成环,然后再判断环里是否为1 即可判断出快乐数

读者可能出现的错误写法

cpp 复制代码
class Solution {
public:

    int bitSum(int n)
    {
        int sum = 0;
        while(n)
        {
            int t = n%10;
            sum += t*t;
            n=n/10;
        }
        return sum;
    }
    bool isHappy(int n) {
        int slow = n;
        int fast = n;
        while(slow != fast)
        {
            slow = bitSum(slow);
            fast = bitSum(bitSum(fast));
        }

        return slow == 1;
    }
};

这里的fast不能初始化成n,因为初始化成n循环就进不去了,应该是初始化成n的下一位,也就是bitSum(n);

正确写法

cpp 复制代码
class Solution {
public:

    int bitSum(int n)
    {
        int sum = 0;
        while(n)
        {
            int t = n%10;
            sum += t*t;
            n=n/10;
        }
        return sum;
    }
    bool isHappy(int n) {
        int slow = n;
        int fast = bitSum(n);
        while(slow != fast)
        {
            slow = bitSum(slow);
            fast = bitSum(bitSum(fast));
        }

        return slow == 1;
    }
};
相关推荐
澈207几秒前
深度优先遍历DFS:从入门到精通
算法·深度优先
计算机安禾2 分钟前
【数据结构与算法】第45篇:跳跃表(Skip List)
c语言·数据结构·算法·list·排序算法·图论·visual studio
cmpxr_4 分钟前
【算法】ECC验签名
单片机·算法
MRDONG14 分钟前
深入理解 RAG(Retrieval-Augmented Generation):原理、工程体系与实践指南
人工智能·算法·语言模型·自然语言处理
别或许12 分钟前
线代中为什么左乘一个列满秩矩阵,不改变矩阵的秩?
人工智能·算法·矩阵
wangbing112514 分钟前
适配md5老算法
算法
Dev7z18 分钟前
基于改进YOLO11算法的芯片微缺陷检测系统(UI界面+数据集+分析界面+处置建议+训练代码)
算法·芯片制造·yolo11
papership20 分钟前
【入门级-算法-4、算法策略:差分】
数据结构·算法
Dfreedom.24 分钟前
异常检测算法详解:从“何为异常”到“如何发现”
人工智能·算法·机器学习·聚类·异常检测