当前位置: 首页 > article >正文

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
输出:false

思路

需要对n不停进行除10取余数,对余数平方叠加求和

这里需要建立一个数组来存储之前所有的和结果存储,当新的和已经在这个数组中时,就表明进入了一个死循环,即这个数并不是快乐数

代码

class Solution:
    def isHappy(self, n: int) -> bool:
        record = []

        while True:
            n = self.compute(n)
            print(n)
            
            if n == 1:
                return True

            if n in record:
                return False
            else:
                record.append(n)



    def compute(self,n):
        num = 0
        while n:
            n,r = divmod(n,10)
            num += r**2
        return num


http://www.kler.cn/a/385282.html

相关文章:

  • 使用Python进行健康监测和分析的案例研究
  • Docker安装XXL-JOB分布式调度任务
  • 【sqlmap使用手册-持续更新中】
  • Android 左右舵镜像支持
  • ESP32 gptimer通用定时器初始化报错:assert failed: timer_ll_set_clock_prescale
  • Java字符串深度解析:String的实现、常量池与性能优化
  • glide 加载gif 卡顿内存高问题 优化
  • [java][框架]springMVC(1/2)
  • go 集成Gin Web开发框架
  • Flutter鸿蒙next中的表单封装:提升开发效率与用户体验
  • HCIP-HarmonyOS Application Developer V1.0 笔记(四)
  • vue3 + ts + vite 初始化 Mars3D
  • sudo docker ps才能查看,docker ps不能查看问题
  • CKA认证 | 使用kubeadm部署K8s集群(v1.26)
  • android 配置鼠标右键快捷对apk进行反编译
  • 如何通过Python SDK更新Collection中已存在的Doc
  • 一文读懂肖特基二极管
  • 【汽车悬挂减震器】制造行业的市场需求与汽车产量呈明显的正相关关系
  • Leetcode 278 First Bad Version
  • 以梧桐数据库为例分析分组排序并取每组第二大数值对应的用户的SQL实现
  • Spring Boot 携手 Vue 构建校内订餐新体系
  • RibbitMQ-原理使用
  • Java NIO操作
  • Liunx:文件fd、重定向、管道
  • 全局变量之C与Pthon的差异
  • 若依管理系统使用已有 Nacos 部署流程整理