当前位置: 首页 > 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);
        }
    }
};

相关文章:

  • 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 分布式事务
  • 清流县建设局网站/做外贸有哪些网站平台
  • 淄博网站制作企业营销/2023新闻摘抄大全
  • 微信做自己的网站/百度投诉中心24人工
  • html做网站怎么链接音乐/西安计算机培训机构排名前十
  • 5种有效增加网站流量/推推蛙seo顾问
  • 企业做网站 里面都写什么/品牌策略怎么写