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

欢乐力扣:快乐数

文章目录

  • 1、题目描述
  • 2、思路1
      • 代码


1、题目描述

 快乐数。
 编写一个算法来判断一个数 n 是不是快乐数。
快乐数定义为:对于一个正整数,每次不断将其转化成 每位数字的平方和。 判断是否最终和会为1,是1就是快乐数,否则不是。
在这里插入图片描述

2、思路1

 这里我参考官方题解,讲解的很明白。主要思路就是,所有正整数一定会步入循环,不会出现无限大的数字,因此,代码可以不考虑这个边界条件;另外,就是用哈希表来记录每次的累加和,用于判断是否进入死循环。

代码

class Solution:
    def isHappy(self, n: int) -> bool:
        # func: 计算当前数字的平方和
        def get_number(num):
            num = str(num)
            sum = 0
            for char in num:
                sum += int(char)**2   # 这里用**,别用^ !!!
            return sum 
        # 构造哈希表用来存储每个和
        from collections import defaultdict
        seen = defaultdict(int)
        count = 0 
        # 当n!=1 且字典中没有找到key的话
        while n != 1 and n not in seen:
            seen[n] = 1       #存入哈希表
            n = get_number(n)
        # 根据数学原理,一定会跳出循环。
        return True if n == 1 else False  

相关文章:

  • MySQL 8.0 社区版安装与配置全流程指南(Windows平台)
  • linux-多进程基础(1) 程序、进程、多道程序、并发与并行、进程相关命令,fork
  • 详细解析d3dx9_27.dll丢失怎么办?如何快速修复d3dx9_27.dll
  • 四元数 欧拉角
  • 【AI+智造】DeepSeek价值重构:当采购与物控遇上数字化转型的化学反应
  • 【SpringBoot】【JWT】0.12.6版本(2025最新)的JWT令牌生成和校验
  • 下拉框置为‘删除‘状态时弹窗确认,取消时退回原始状态
  • vue3学习3-route
  • Redis|持久化
  • Python实现GO鹅优化算法优化随机森林分类模型项目实战
  • Linux | man 手册使用详解
  • 02原理篇(D2_SpringBoot 自动装配原理)
  • Three.js 快速入门教程【八】常见材质类型
  • python采集京东商品详情API接口系列,json数据示例返回
  • elementUI方案汇总
  • 11_17日项目笔记——制作“全屏播放页面”
  • 【数据结构】链表中快指针和慢指针
  • 随笔记:SpringBoot引入第三方jar包并包扫描问题
  • 单片机延时函数怎么写规范?
  • 甘肃非物质文化网站(源码+数据库+文档)
  • 京东的网站建设介绍/专业seo网络营销公司
  • 网站3d特效源码/百度惠生活商家入驻
  • 湖南企业网站制作公司/线上推广
  • 58同城北京网站建设/百度怎么推广自己的信息
  • 《网站建设》项目实训报告/企业品牌营销推广
  • 东莞建设教育网站/河南制作网站公司