【优选算法】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------------------------------------------

相关推荐
骄傲的心别枯萎21 小时前
RV1126 NO.16:通过多线程同时获取H264和H265码流
linux·c++·音视频·rv1126
落羽的落羽21 小时前
【C++】特别的程序错误处理方式——异常机制
开发语言·c++
空山新雨(大队长)21 小时前
C 语言第一课:hello word c
c++·c·exe
春蕾夏荷_72829772521 小时前
c++ 第三方库与个人封装库
c++·三方库
牵牛老人1 天前
Qt C++ 复杂界面处理:巧用覆盖层突破复杂界面处理难题之一
数据库·c++·qt
wallflower20201 天前
滑动窗口算法在前端开发中的探索与应用
前端·算法
林木辛1 天前
LeetCode热题 42.接雨水
算法·leetcode
MicroTech20251 天前
微算法科技(NASDAQ: MLGO)采用量子相位估计(QPE)方法,增强量子神经网络训练
大数据·算法·量子计算
星梦清河1 天前
宋红康 JVM 笔记 Day15|垃圾回收相关算法
jvm·笔记·算法
货拉拉技术1 天前
揭秘语音交互的核心技术
算法