【优选算法】3----快乐数

这是第三篇算法题,也是十分的不好想,虽然定位在简单,但我感觉还是有些难度的~

-------------------------------------begin-----------------------------------------

题目解析:

同样的,这道算法题,看题目的话,也是很难理解的但我们抠字眼,"无限循环",这就让我们想到了链表,带环链表和不带环链表,快慢指针的思想~

讲解算法原理:

这道题,我们可以运用前面所理解的两种思路,链表和快慢指针的思路来遍历,定义两个指针slow和fast分别指向第一个数和下一个数,两个指针不相遇则继续遍历下去,slow一次走一个数,fast一次走两个数,额外还需要一个函数将参数n进行位数拆分计算~

编写代码:

cpp 复制代码
class Solution 
{
    int bitSum(int n)
    {
        int sum=0;
        while(n)
        {
            int t=n%10;
            sum+=t*t;
            n/=10;
        }
        return sum;
    }

public:
    bool isHappy(int n) 
    {
        int slow=n,fast=bitSum(n);
        while(slow!=fast)
        {
            slow=bitSum(slow);
            fast=bitSum(bitSum(fast));
        }
        return fast==1;
    }
};

过程不算复杂,只是思路比较难理解~

想试试水的铁子也可以去做一下哦~

202. 快乐数 - 力扣(LeetCode)

--------------------------------------end------------------------------------------

相关推荐
To_OC15 小时前
LC 1 两数之和:面试第一道必考题,暴力解法直接被面试官 pass
javascript·算法·leetcode
鱼鱼不愚与19 小时前
《原来如此 | 第01期:为什么导航软件能预测红绿灯倒计时?》
算法
博客18001 天前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝
郝学胜_神的一滴1 天前
CMake 026:属性体系精讲、四大作用域全解 & 实战代码落地
c++·cmake
复杂网络1 天前
论最小 Agent 计算机的形态
算法
kisshyshy2 天前
🍦 雪糕、食堂、火车厢:三幅漫画吃透栈、队列与链表
javascript·算法
众少成多积小致巨2 天前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
猿人谷2 天前
不只是 CPU 阈值:STAR 如何用 GAT + Transformer 做容器级自动扩缩容?
人工智能·算法
复杂网络2 天前
Stable Diffusion 视觉大模型微调技术深度调研
算法