【哈希-简单】202. 快乐数

算法刷题笔记06 | 第三章 哈希表P1 | Java中哈希表理论 242.有效字母异位词、349. 两个数组交集、202. 快乐数、1. 两数之和 总结一下,**当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法**。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法! 阅读详情

【题目】
编写一个算法来判断一个数 n 是不是快乐数。
「快乐数」定义为:
对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
如果 可以变为 1,那么这个数就是快乐数。
如果 n 是快乐数就返回 true ;不是,则返回 false 。
【示例 1】
输入:19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
【示例 2】
输入:n = 2
输出:false
【提示】
1 <= n <= 231 - 1
【代码】
【Python】
【方法1:】
jilu列表中记录的是所有出现过的数字,每次处理完一个数字生成下一个数字之后,就会判断这个新产生的数字,是否存在于jilu之中,若存在于,则说明构成一个死循环,该数不是快乐数。

class Solution:
    def isHappy(self, n: int) -> bool:
        cnt=n
        jilu=[n]
        while cnt!=1:
            cnt=str(cnt)
            s=0
            for c in cnt:
                s+=(ord(c)-48)**2
            cnt=s
            if cnt in jilu:
                return False
            jilu.append(cnt)
        return True

【方法2:数学法】跟方法1的代码逻辑很像,但是不同在于,cycle_members是导致不能构成快乐数的数字链的集合(列表),每处理完一个数,产生一个新的数,都要判断该数是否存在于循环列表中,如果存在返回False
执行用时:
36 ms, 在所有 Python3 提交中击败了95.01%的用户
内存消耗:
14.6 MB, 在所有 Python3 提交中击败了82.40%的用户

class Solution:
    def isHappy(self, n: int) -> bool:
        cycle_members = {4, 16, 37, 58, 89, 145, 42, 20}

        def get_next(number):
            total_sum = 0
            while number > 0:
                number, digit = divmod(number, 10)
                total_sum += digit ** 2
            return total_sum

        while n != 1 and n not in cycle_members:
            n = get_next(n)

        return n == 1

【知识点】
divmod(num,10)

n=13
shiwei,gewei=divmod(n,10)
print(shiwei,gewei)
国产AI芯片实战:用寒武纪MLU370低成本部署DeepSeek-R1,实测推理效果与成本分析 本文详细介绍了寒武纪MLU370芯片在部署DeepSeek-R1大模型时的实战效果与成本优势。通过实测数据对比,MLU370在推理速度、能效比和本地化服务方面表现突出,尤其适合智能客服、内容生成等场景,可显著降低硬件投入和运维成本。 阅读详情

相关推荐

磁带库Scalar i6000界面基本操作步骤

(注:磁带库的前面的门不要打开,日常维护:主要就是简单看下磁带库的状态;绿色代表正常;黄色代表报警但不影响磁带库正常使用;红色代表报警,不能正常使用,及时和厂家联系报修。) 一、磁带库管理页面 1、首先,磁带库前面(具体作用如图) 2、查看状态和管理页面 3、管理页面登陆。用户名:service 密码:xxxxxx 4、磁带机背面 二、电脑连接磁带库进入管理页面 1.用网线把电脑和磁带库的维护接口(磁带库背面)进行连接 2.电脑环境:JAVA。把电脑的IP设置成自...

杀神lwz的博客 5359

【JS】 快乐数 #哈希表 #数组

编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 输入: 19 输出: true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1...

大白菜啊 311

【脑电绘图教程 2】使用Brainstorm进行脑电处理及源定位

Brainstorm 是一个开源应用程序,支持MEG、EEG、fNIRS、ECoG、深度电极和其他电生理学的数据分析,尤其用于MEG、EEG的源定位。Brainstorm的主要优点是其简单直观的图形界面,不需要进行任何编程,即可上手MEG、EEG分析,此外,它还支持多种数据类型(基本上EEGLab支持的,它都支持),并且具有数据批量处理功能,可以很方便的分析自己的数据。

qq_40735196的博客 1万+

leetcode刷题202 快乐数 Happy Number(简单) Python Java

题目描述 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 输入: 19 输出: true 解释: 1² + 9² = 82 8² + 2² = 68 6² + 8² = 100 1² + 0...

SpringRolls的博客 583

关于使用vcpkg下载osgearth遇到的问题

注意--x-manifest-root=后面跟着的E:\gitproject\osgearth-osgearth-3.5\vcpkg是你下载的源码解压缩后vcpkg.json的文件地址,然后等待编译完成。安装vcpkg后使用vcpkg install osgearth:x64-windows安装好osgearth并且导入项目使用时,发现无法运行官方文档中示例的main.cpp。这里写一种自己用过的使用vcpkg安装osgearth3.5的方法,源码,打开vcpkg所在的命令行,执行。示例main.cpp。

m0_61776040的博客 1526

昇腾910安装驱动出错,降低Centos7.6的内核版本

Centos7.6 启动内核修改,解决昇腾910安装驱动错误的问题。

深蓝 3302

快乐数 -- java 记录

编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 第一种解法:循环计算累加值,非快乐数在计算过程中会出现重复数字,遇到则判断未非快乐数。 public static boolean isHappy(int n...

zkhong07的博客 429

从零到一:Ubuntu22.04下VSCode与中文输入法的深度整合指南

本文详细介绍了在Ubuntu22.04系统中如何深度整合VSCode与中文输入法,包括环境准备、安装方案对比、输入法配置及常见问题解决方案。通过fcitx框架优化中文输入体验,提供从基础设置到高级调试的全方位指南,帮助开发者提升在Linux环境下的开发效率。

weixin_29158047的博客 483

leetcode【哈希表—简单】202.快乐数

编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 true ;不是,则返回 false 。

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 584

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1320

使用 Python 爬取网易云音乐歌单数据(完整教程)

随着在线音乐平台的普及,网易云音乐(NetEase Cloud Music)凭借其个性化的推荐算法和丰富的用户互动,吸引了大量用户。网易云音乐的歌单中包含了丰富的音乐数据,包括歌曲名、歌手、专辑、播放量、评论数等信息。通过爬取这些数据,可以对音乐流行趋势进行分析,挖掘音乐推荐策略,甚至训练个性化推荐模型。网易云音乐的 API 并未官方开放,但开发者通过抓包和逆向分析,找到了若干可用接口。✅ 数据清洗与存储(CSV/数据库)✅ 网易云音乐 API 接口分析。✅ 网易云音乐接口解析。✅ 同步与异步爬取实现。

2201_76125261的博客 1373

【哈希】Leetcode 202. 快乐数【简单】

其中 n 是输入数字。由于每次计算平方和时数字变小,所以不会有非常大的循环。时间复杂度: 在最坏的情况下,每个数字在集合中最多出现一次,时间复杂度为。如果 n 是 快乐数 就返回 true;不是,则返回 false。空间复杂度:使用了一个HashSet来存储出现过的数字,空间复杂度为。编写一个算法来判断一个数 n 是不是快乐数。,因为数字的平方和在不断变小。

FLGB 333

FISCO BCOS 系列(一)—— 搭建第一个区块链网络&配置控制台指南

本文详细介绍了FISCO BCOS区块链网络的搭建与配置过程,包括环境准备、单机四节点网络搭建、控制台配置使用等核心内容。从系统要求、依赖安装开始,逐步指导如何通过脚本快速搭建区块链网络,配置控制台连接,并演示了账户管理、合约部署调用等基础操作。同时提供了多节点网络配置、常见问题解决方案以及生产环境安全建议,为开发者提供了从入门到进阶的完整指南。

分享AI、区块链技术及应用,未来已来 815

【哈希表、递归】202.快乐数(简单)

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

weixin_44248234的博客 229

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

202. 快乐数(简单 哈希表)

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

weixin_43942435的博客 159

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

0数学/哈希简单 LeetCode202. 快乐数

202. 快乐数 描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。 分析 n不会无限的求下去,因为凑出各个位置上数字平方和最大的情况是1 999 999 999,即1 + 82*9 = 739,n的结果一定是在1-739之间

31楼下小黑的博客 164

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

202. 快乐数 简单 哈希表判断 快慢指针 数学

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

wow_awsl_qwq的博客 246

【LeetCode】C++ :简单题 - 哈希表 202. 快乐数

202. 快乐数 难度简单515 编写一个算法来判断一个数n是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 如果n是快乐数就返回True;不是,则返回False。 示例: 输入:19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 +...

weixin_44566432的博客 272

LeetCode_双指针_哈希集合_简单_202.快乐数

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

代码星辰的博客 576

LeetCode 面试经典 150_哈希表_快乐数(45_202_C++_简单)(哈希集合;快慢指针)

LeetCode 面试经典 150_哈希表_快乐数(45_202_C++_简单) 题目描述: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为: - 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 - 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 - 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

huayimenghan的博客 455

(C++)Leetcode狂刷200题——标签“哈希表篇--简单难度10道 #202. 快乐数

第三道、#202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则返回 False 。 示例: 输入:19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1 来源:力扣.

electrical_engineer0的博客 215

哈希表_快乐数

然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 n 是 快乐数 就返回 true;不是,则返回 false。之前判断使用了快慢指针的技巧,其实判断重复最简单的方法就是使用set。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。编写一个算法来判断一个数 n 是不是快乐数。

Q95470的博客 293

代码随想录算法训练营第5天 | 242. 有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

哈希表

miracle_world的博客 2859

代码随想录算法训练营第六天 | 242.有效的字母异位词 | 349. 两个数组的交集 | 202. 快乐数 | 1. 两数之和

自己实现中遇到哪些困今日收获,记录一下自己的学习时长哈希表用起来还是很简单的,需要进行快速搜索元素的时候一般会用到。Java面试也会问到关于HashMap,底层实现是数组,链表,红黑树。解惑(补充)哈希表理论基础哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。代码随想录242.有效的字母异位词(简单)文章讲解:代码随想录。

Noah_aa的博客 388

每日算法Day04【有效的字母异位词、两个数组的交集、快乐数、两数之和】

每日算法练习思路记录,力扣哈希表部分算法题。

2303_76696898的博客 694

Day6|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

这道题算得上是比较难的“简单题”了,暴力法都很容易想到,但是时间复杂度O(n*n),要想到O(n)的解法真不容易。Map真的很妙的解法。题目本身不难,学习了unordered_set的使用。还懂得了不同容器之间的赋值可采用范围构造的方法(利用迭代器指定范围)。哈希表理论基础:三种哈希结构这里不是很理解,尤其是对于红黑树的描述,等后面学了红黑树回来看。这道题也很简单,但是没写出正确代码,有点沮丧。242.有效的字母异位词。349.两个数组的交集。

LUFFYLLLLL的博客 160
上一篇: 【哈希-简单】884. 两句话中的不常见单词
下一篇: 【哈希-简单】剑指 Offer 50. 第一个只出现一次的字符
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值