当前位置: 首页 > news >正文

算法-哈希表03-快乐数

快乐数

力扣题目链接

题目描述

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果这个过程 结果为 1,那么这个数就是快乐数。
如果 n 是 快乐数 就返回 true ;不是,则返回 false 。
示例:
输入:n = 19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

解题思路

看到这道题,立刻就能想到递归的思想,因为这是一个需要不断调用自身的过程,直到出现循环或者结果为1。
那么我们可以先完成快乐数的计算过程,然后再函数外定义一个全局变量用于存储已经计算过的数据,使用哈希表存储可以使数据查询更加快,那么就不断递归判断,直到结果为1或者出现循环即可。

题解

class Solution {
public:
    unordered_set<int> num;
    bool isHappy(int n) {
        if(n == 1){
            return true;
        }

        if(num.count(n)){
            return false;
        }
        else{
            num.insert(n);
            int sum = 0;
            while(n){
                sum += (n % 10) * (n % 10);
                n = n / 10;
            }

            return isHappy(sum);
        }
    }
};
http://www.dtcms.com/a/15302.html

相关文章:

  • Django ORM:外键字段的命名与查询机制解析
  • Linux进程调度
  • DeepSeek 开放平台无法充值使用 改用其他中转平台API调用DeepSeek-chat模型方法
  • 变电站激光驱鸟器:绿色技术助力电网安全,减少鸟类威胁
  • C# 异步编程Async/Await 原理及使用详解
  • 【2023 K8s CKA】云原生K8s管理员认证课-零基础 考题更新免费学-全新PSI考试系统
  • Git子模块实战:大型后台管理系统模块拆分实践
  • elementUI rules 判断 el-cascader控件修改值未生效
  • Qt中QApplication 类和uic、moc程序
  • Node.js调用DeepSeek Api 实现本地智能聊天的简单应用
  • DeepSeek R1生成图片总结(虽然本身是不能直接生成图片,但是可以想办法利用别的工具一起实现)
  • Linux入侵检查流程
  • 使用 Visual Studio Code (VS Code) 开发 Python 图形界面程序
  • 你认为如何理解“约定大于配置”?
  • CentOS 系统上安装 Anaconda3-2022.05-Linux-x86_64.sh linux安装python3.9
  • 缓存三大问题及其解决方案
  • Jieba分词算法应用
  • json-schema 的编辑器
  • DeepSeek图解10页PDF
  • SpringCloud - Seata 分布式事务
  • 登录弹窗效果
  • 基础网络详解4--HTTP CookieSession 思考 2
  • 差分及其性质不变算子移位算子
  • 深入探索C语言中的字符串处理函数:strstr与strtok
  • 磁盘与mysql的故事
  • 聊一聊FutureTask源码中体现的“自旋锁”思想
  • 【无线感知会议系列-22 】Vivisecting Mobility Management in 5G Cellular Networks
  • 类型通配符上限
  • 《pyqt+open3d》第三章——icp配准点对点
  • 交叉编译foxy版ros2部署到ARM上运行