LeetCode 202. 快乐数

作者:-森屿安年-日期:2025/11/24

目录

  • 相似题目
  • 原题
  • 题目解析
  • 算法原理
  • 代码实现

相似题目

环形链表
环形链表 II

原题

快乐数

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

「快乐数」 定义为:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。

如果 n 是快乐数就返回 true ;不是,则返回 false

示例 1:
输入:n = 19
输出:true

示例 2:
输入:n = 2
输出:false

题目解析

题目要求我们对一个正整数进行计算,计算时,取它每一位上的数字,进行平方然后计算和,如果最后结果是 1,那么就是快乐数,比如示例 1:

也有可能无限循环最后结果永远不为 1,那么它就不是快乐数,比如示例 2:

算法原理

经过对题目给出的示例观察后发现,在计算快乐数的过程中,可能会出现环(或称数字的循环),在环内如果算出来的数一直都是 1,那么肯定是快乐数,如果算出来的数一直取不到 1,那么就不是快乐数了,因此,我们可以借助两个指针 slow 和 fast (这里的指针非真正意义上的指针,实际上是为保存计算出来的值而设定的两个变量),使用快慢指针的方式,让 slow 移动一步,fast 移动两步,当 slow 和 fast 相遇时(计算出的值相等时),肯定是在环内,此时判断计算出来的值是否为 1 即可

示例 1:

示例 2:

代码实现

1class Solution {
2public:
3    int Sum(int n)
4    {
5        int sum = 0;
6        while (n)
7        {
8            int last = n % 10;
9            sum += last * last;
10            n /= 10;
11        }
12        return sum;
13    }
14
15    bool isHappy(int n) {
16        int slow = n;
17        int fast = Sum(n);
18
19        while (slow != fast)
20        {
21            slow = Sum(slow);
22            fast = Sum(Sum(fast));
23        }
24
25        return slow == 1;
26    }
27};
28

LeetCode 202. 快乐数》 是转载文章,点击查看原文


相关推荐


水果识别系统【最新版】Python+TensorFlow+Vue3+Django+人工智能+深度学习+卷积神经网络算法
青瓷程序设计2025/11/23

一、项目介绍 水果识别系统,通过TensorFlow搭建卷积神经网络算法,并收集了10种常见的水果数据集(‘哈密瓜’, ‘椰子’, ‘樱桃’, ‘火龙果’, ‘猕猴桃’, ‘红苹果’, ‘芒果’, ‘葡萄’, ‘西瓜’, ‘香蕉’),对其进行多轮迭代训练,最后得到了一个精度较高的模型,并搭建Web可视化操作平台。 前端: Vue3、Element Plus 后端:Django 算法:TensorFlow、卷积神经网络算法 具体功能: 系统分为管理员和用户两个角色,登录后根据角色显示其可访问的


单片机简单介绍
_the_sun2025/11/21

目录 一、单片机简介 二、单片机的命名规则与封装 三、单片机内部结构图与最小系统 (1)内部模块结构图 (2)最小系统         虽然以前也简单学习过单片机,但是当时还未曾学习数电模电,对于各种芯片、工作原理的理解较为浅显,只是停留在代码如何写的方面。现在补充了一定的数模电基础后想巩固一下知识,考虑到并未写一份单片机使用说明,于是开始尝试本系列。 一、单片机简介         单片机(Micro Controller Unit),简称MCU。即微小控制单元,通常用


Lua 的 collectgarbage 函数
IMPYLH2025/11/19

Lua 的 collectgarbage 函数 是用于控制垃圾回收机制的重要工具。该函数提供了多种操作模式来管理内存回收: 基本语法: collectgarbage(opt [, arg]) 主要操作选项: "collect" - 执行一次完整的垃圾回收循环"stop" - 暂停垃圾回收器"restart" - 重新启动垃圾回收器"count" - 返回当前 Lua 使用的内存总量(以 KB 为单位)"step" - 执行单步垃圾回收"setpause" - 设置回收器的暂停参数"set


马斯克Grok 4.1低调发布!通用能力碾压其他一切模型
机器之心2025/11/18

几乎毫无预兆,马斯克人工智能公司 xAI 发布了最新模型 Grok 4.1。 就在刚刚,xAI 宣布,Grok 4.1 已经向所有用户开放,可以在 Grok 官网、X 以及 iOS 和 Android 应用中使用。 Grok 4.1将立即在 Auto 模式中推送,并可在模型选择器中手动选择。 此次,Grok 4.1 将在真实世界可用性方面带来显著提升,尤其是在创造力、情感互动和协作交互方面表现出色。Grok 4.1 对细微意图的感知能力更强,与用户对话更加吸引人,整体人格也更连贯,同时完全保


Python 的内置函数 sorted
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 sorted Python 的内置函数 sorted() 是一个用于排序的可迭代对象的高阶函数,它接受一个可迭代对象作为输入,并返回一个新的已排序的列表。与列表的 sort() 方法不同,sorted() 不会修改原始的可迭代对象,而是生成一个新的排序后的列表。 基本用法 sorted(iterable, key=None, reverse=False) iterable:需要排序的可迭代对象(如列表、元组、字符串等)key(可


线性代数 - 叉积的分量形式与矩阵形式
二分掌柜的2025/11/16

线性代数 - 叉积的分量形式与矩阵形式 flyfish 单位基向量与 向量的分解 1. 三维坐标系与单位基向量 图中蓝色的x轴、红色的y轴、绿色的z轴构成了一个右手系三维笛卡尔坐标系(符合“右手定则”的空间定向)。 在这个坐标系中,有三个单位基向量: i^\hat{i}i^(蓝色箭头):沿x轴方向的单位向量; j^\hat{j}j^​(红色箭头):沿y轴方向的单位向量; k^\hat{k}k^(绿色箭头):沿z轴方向的单位向量。 这三个基向量两两垂直(夹角为90∘90^\circ90∘) 2.


docker启动失败
AI小胖2025/11/15

** ** 问题很明确了:Failed at step LIMITS spawning /usr/bin/dockerd: Operation not permitted 和 status=205/LIMITS。这表明 systemd 在设置资源限制时遇到了权限问题。 解决方案: 1. 移除或修复有问题的资源限制配置 # 移除我们之前创建的 override 配置 rm -f /etc/systemd/system/docker.service.d/override.conf # 重新加载


实时大数据计算中,Spark的滑动窗口和允许消息迟到机制
sword_csdn2025/11/13

目录 1.开发环境2.几句话先概括3.例子说明3.1.参数配置3.2.窗口是如何产生的3.3.Trigger触发机制3.4.迟到的消息数据 最近做了个实时大数据分析的项目,发现很多东西都忘记了,属实没有好好整理笔记之过,趁眼下闲暇,做个回忆和记录。 1.开发环境 这次环境采用Java17+,Scala2.13,Spark的版本为4.0.0,且基于Kafka创建读取流。其它环境可参考以下maven pom。 <?xml version="1.0" encoding="UTF-8"


centos运维常用命令
KV_T2025/11/12

CentOS 服务器运维中,以下是按场景分类的常用命令,涵盖系统监控、用户管理、服务管理、文件操作等核心场景,适合日常运维参考: 一、系统状态监控 查看系统负载 uptime # 显示系统运行时间、用户数、1/5/15分钟负载 w # 更详细的负载信息,包括登录用户和进程 CPU 监控 top # 实时查看CPU、内存占用(按q退出) htop # 交互式CPU/内存监控(需安装:yum install htop) lscpu


C++中实现多线程编程
Alex艾力的IT数字空间2025/11/10

一、基于POSIX线程库(pthreads) 适用场景:Linux/Unix系统、需要底层线程控制或兼容旧代码。 核心步骤: 包含头文件:#include <pthread.h> 定义线程函数:返回类型为void*,参数为void*指针。 创建线程:使用pthread_create函数。 等待线程结束:使用pthread_join回收资源。 示例代码: #include <iostream> #include <pthread.h> void* thread

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读