算法-哈希表03-快乐数

news/2025/2/15 6:41:04/

快乐数

力扣题目链接

题目描述

编写一个算法来判断一个数 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.ppmy.cn/news/1572165.html

相关文章

【前端框架】Vue3 面试题深度解析

本文详细讲解了VUE3相关的面试题&#xff0c;从基础到进阶到高级&#xff0c;分别都有涉及&#xff0c;希望对你有所帮助&#xff01; 基础题目 1. 简述 Vue3 与 Vue2 相比有哪些主要变化&#xff1f; 答案&#xff1a; 响应式系统&#xff1a;Vue2 使用 Object.definePrope…

C# 变量,字段和属性的区别

总目录 前言 在C#中&#xff0c;变量&#xff08;Variables&#xff09;、字段&#xff08;Fields&#xff09; 和 属性&#xff08;Properties&#xff09; 是三个容易混淆但作用截然不同的概念。以下是它们的核心区别与使用场景&#xff1a; 一、变量&#xff08;Variables&…

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展&#xff0c;智能家居逐渐成为现代生活的一部分。在众多智能家居应用中&#xff0c;智能灯光控制系统尤为重要。通过语音控制和自动调节灯光&#xff0c;用户可以更便捷地操作家中的照明设备&#xff0c;提高生活的舒适度与便利性。本文将介绍一…

mysql用户名怎么看

要查看 mysql 中的用户名&#xff0c;可以使用以下方法&#xff1a;使用 show databases 命令查看数据库拥有者信息&#xff1b;使用 ps 命令查看正在运行的 mysql 进程&#xff1b;使用 whoami 命令查看当前操作系统用户名&#xff1b;查看 /etc/mysql/my.cnf 或 /etc/my.cnf …

DeepSeek本地部署及接口调用

最近国产大模型 DeepSeek 非常火&#xff0c;DeepSeek 是一个开源模型&#xff0c;我们可以通过本地部署在自己的终端上随时使用&#xff0c;而且部署到本地后无需联网即可直接使用&#xff0c;以windows为例。 一、安装Ollama 如果想要在本地运行 DeepSeek 需要用到 Ollama …

【Abnormal build process termination: xxx, Unrecognized option: --add-opens】

Abnormal build process termination: *********************************** Unrecognized option: --add-opens Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 原因:jdk版本和tomcat版本不匹配

47 AVL树的实现

目录 一、AVL树的概念 二、AVL树的实现 &#xff08;一&#xff09;AVL树的结构 &#xff08;二&#xff09;AVL树的插入 1、AVL树插入值的过程 2、平衡因子更新 3、实现代码 &#xff08;三&#xff09;旋转 1、旋转的规则 2、右单旋 3、右单旋的代码实现 4、左单…

【limit 1000000,10 加载很慢该怎么优化?】

在 SQL 数据库中,使用 LIMIT 子句进行分页查询时,如果偏移量(offset)很大,查询性能可能会变得非常差。 这是因为数据库需要扫描和跳过大量的记录才能到达所需的起始位置,然后再取出所需的记录数。 例如,LIMIT 1000000, 10 表示跳过前 100 万条记录,然后取接下来的 10…