202.快乐数 不快乐的时候做个快乐题!

简介: 202.快乐数 不快乐的时候做个快乐题!

202.快乐数


https://leetcode-cn.com/problems/happy-number/solution/202kuai-le-shu-zi-fu-chuan-yu-shu-xue-sh-q2np/

难度:简单


题目:

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

「快乐数」定义为:

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

提示:

  • 1 <= n <= 2^31 - 1


示例:

示例 1:
输入:19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
示例 2:
输入:n = 2
输出:false


分析

这道题我们只需要按要求进行模拟即可,但这里需要注意也许这个数永远也不会是快乐数。

那么我们就需要在计算的过程中,将每次结果保存在一个hashset中,以保证本次计算的结果未在历史的运算过程中出现过。

在这里提供两种模拟方式。

  1. 字符串模拟:通过字符串的匹配进行计算
  2. 数学模拟:通过divmod循环计算


字符串解题

网络异常,图片无法展示
|

class Solution:
    def isHappy(self, n):
        all_set = set()
        while n not in all_set:
            all_set.add(n)
            tmp = sum((map(lambda x: int(x) ** 2, str(n))))
            if tmp == 1:
                return True
            n = tmp
        return False


数学解题:

网络异常,图片无法展示
|

class Solution:
    def isHappy(self, n: int) -> bool:
        all_set = set()
        while n not in all_set:
            all_set.add(n)
            tmp = 0
            while n:
                n,mod = divmod(n,10)
                tmp += mod ** 2
            if tmp == 1:
                return True
            n = tmp
        return False




相关文章
|
缓存 监控 前端开发
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
【4月更文挑战第30天】本文探讨了Flutter应用启动优化策略,包括理解启动过程、资源加载优化、减少初始化工作、界面布局简化、异步初始化、预加载关键数据、性能监控分析以及案例和未来优化方向。通过这些方法,可以缩短启动时间,提升用户体验。使用Flutter DevTools等工具可助于识别和解决性能瓶颈,实现持续优化。
453 0
【Flutter 前端技术开发专栏】Flutter 应用的启动优化策略
|
安全 云计算
身份和访问管理(IAM)软件市场现状及未来发展趋势
本文研究全球及中国市场身份和访问管理(IAM)软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势
身份和访问管理(IAM)软件市场现状及未来发展趋势
|
JavaScript 定位技术 API
高德地图自定义定位 按钮
高德地图自定义定位 按钮
958 0
|
6月前
|
传感器 存储 安全
鸿蒙开发:权限管理之权限声明
本文,主要简单概述了为什么要有权限管理,以及权限管理的声明原则,这些都是基本的概念内容,大家做为了解即可,重要的是怎么声明权限,在什么位置声明权限,这一点需要掌握。
224 16
鸿蒙开发:权限管理之权限声明
|
Kubernetes 测试技术 Perl
混沌测试平台 Chaos Mesh
混沌测试平台 Chaos Mesh
392 1
|
11月前
|
运维 关系型数据库 MySQL
运维|MySQL 数据库被黑,心力交瘁
前一阵有一个测试用的 MySQL 数据库被黑了,删库勒索的那种,这里记录一下事情经过,给自己也敲个警钟。
147 2
|
负载均衡 安全 应用服务中间件
微服务架构中的API网关模式与实践
在微服务架构中,API网关扮演着至关重要的角色。它不仅是客户端请求和服务之间的中介,而且负责请求的路由、聚合以及协议转换等关键功能。本文将深入探讨API网关的设计原则、实现方式及其在现代后端系统中的应用,同时提供具体案例分析以展示其在实际项目中的有效运用。
|
Linux 网络安全 Apache
Redhat 9 搭建Apache服务
Apache HTTP Server,开源且广泛使用的Web服务器,以其高效、可靠和可扩展性著称。它有两种工作模式:prefork(多进程单线程)和worker(多进程多线程)。在Redhat 9.2系统上安装Apache,涉及安装httpd服务及相关依赖,配置文件位于`/etc/httpd/conf/httpd.conf`。安装后,需关闭防火墙和SELinux,重启服务并设置开机启动,确保80端口监听。最后,通过IP地址访问测试页面以验证配置成功。
407 0
Redhat 9 搭建Apache服务
|
算法 NoSQL 网络协议
嵌入式软件开发应该掌握哪些知识?
本文介绍了嵌入式软件及其在汽车、医疗设备等领域的应用。嵌入式软件是运行在嵌入式系统中的程序,负责控制硬件并提供特定功能。要成为嵌入式软件开发者,需掌握C/C++编程语言、数据结构与算法、Linux基础知识,如文件系统管理、命令操作。进阶知识包括文件I/O、线程进程、IPC和网络编程。高阶知识涉及ARM架构、系统移植、Bootloader、内核移植及Linux驱动开发,包括设备驱动编程和调试优化技术。
310 0
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
505 1

热门文章

最新文章