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

相关推荐
莫叫石榴姐10 分钟前
如何为大模型编写优雅且高效的提示词?
人工智能·算法
六bring个六33 分钟前
文件系统交互实现
开发语言·c++·qt·交互
小山菌1 小时前
mac中加载C++动态库文件
开发语言·c++·macos
疯狂学习GIS1 小时前
Windows配置VS Code详细流程
c++·学术工作效率
__BMGT()1 小时前
C++ QT图片查看器
前端·c++·qt
Echo``1 小时前
1:OpenCV—图像基础
c++·图像处理·人工智能·opencv·算法·计算机视觉·视觉检测
ALex_zry2 小时前
Ubuntu 20.04 C++开发环境搭建指南(2025版)
linux·c++·ubuntu
COOCC12 小时前
激活函数全解析:定义、分类与 17 种常用函数详解
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·自然语言处理
林下清风~2 小时前
力扣hot100——347.前K个高频元素(cpp手撕堆)
算法·leetcode·职场和发展
进击的小白菜3 小时前
Java回溯算法解决非递减子序列问题(LeetCode 491)的深度解析
java·算法·leetcode