LeetCode:202. 快乐数
1、题目描述
编写一个算法来判断一个数是不是“快乐数”。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
示例:
输入: 19
输出: true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
2、题解
2.1、解法一
class Solution(object):count = 0def isHappy(self, n):""":type n: int:rtype: bool"""if n == 1:return Truel = []while n:a,b = divmod(n,10)l.append(b)n = a# if len(l) ==1:# return False# else:self.count += 1if self.count >100:return Falsel.reverse()print(l)ret = 0for i in l:ret += i**2if ret == 1:return Trueelse:ret = self.isHappy(ret)return ret
2.2、解法二
class Solution(object):def isHappy(self, n):""":type n: int:rtype: bool"""temp = []def get_add(n):ret = 0while n != 0:g = n % 10ret += g ** 2n = int(n / 10)return retwhile True:n = get_add(n)if n == 1:return Trueelif n in temp:return Falseelse:temp.append(n)
转载于:https://www.cnblogs.com/bad-robot/p/10065685.html
LeetCode:202. 快乐数相关推荐
- LeetCode 202. 快乐数【哈希表】
202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 1,也可能是 无限 ...
- leetcode 202. 快乐数 思考分析(哈希集合与双指针解)
1.题目 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变 ...
- LeetCode 202. 快乐数(快慢指针)
1. 题目 2. 解题 一个数经过若干次各位数平方和后,会等于它自己 使用类似环形链表的快慢指针法,最终快慢指针相遇,若不为1则是不快乐数 class Solution {public:int bit ...
- 2022-1-18 Leetcode 202.快乐数
问题就在于如何判断无限循环? 我是要求最多循环20次 class Solution {public:bool isHappy(int n) {int sum = 0;int a = 0;int cou ...
- leetcode 202 快乐数
class Solution { public:bool isHappy(int n) {unordered_map<int,bool> m;while(n!=1){m[n]=true;i ...
- Leetcode 202. 快乐数 解题思路及C++实现
解题思路: 用递归的方法,出现1,就返回true,这里用了 unordered_map 来记录是否会出现循环.(也可以用unordered_set) 通过计算余数和商,来得到每个位置数字的平方和.具体 ...
- 129. Leetcode 202. 快乐数 (哈希表)
class Solution:def isHappy(self, n: int) -> bool:set_ = set()while 1:sum_ = self.getSum(n)if sum_ ...
- Leetcode 202.快乐数(哈希容器来检测是否出现重复)
传送门:力扣 所学知识: 1.求和过程,去数值的单数操作,使用while(n)来操作.很强. int getSum(int n) {int sum = 0;while (n) {sum += (n % ...
- 算法训练Day6 | LeetCode:242. 有效的字母异位词(数组作哈希表);349. 两个数组的交集(Set作哈希表);202.快乐数 (Set作哈希表);1. 两数之和(Map作哈希表)
目录 LeetCode242. 有效的字母异位词 方法:数组作哈希表 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 Leetcode349. 两个数组的交集 方法一:用Set作HashMa ...
- LeetCode Algorithm 202. 快乐数
202. 快乐数 Ideas 快乐数的判断逻辑其实挺简单的,按照定义去循环执行就可以了. 关键是如果不是快乐数怎么结束循环. 我们猜测会有以下三种可能: 最终会得到 1 最终会进入循环 值会越来越大, ...
最新文章
- 逆天了:Nature一篇论文57000位作者,更厉害的是,大多数作者都是游戏玩家
- python 难度-python上手难度算较低
- C# 3.0 New Language Features (Part 1)
- 7个示例科普CPU Cache
- LeetCode 49字母异位词分组50pow(x,n)51八皇后
- 史上最简单的SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)
- SAP OData Gateway里uri type为metadata的请求处理逻辑
- c语言开发工具程序代码是什么文件,【C语言】开发工具--GCC使用入门
- mysql错误信息收集_MySQL错误信息记录
- 今日头条、快手们疯狂招人是人工智能的失败?
- 笔记:Chrome 对浏览器的改进
- 回溯算法讲解--适用于leetcode绝大多数回溯题目
- 【bzoj1433】[ZJOI2009]假期的宿舍
- linux限制用户只能访问网站,Linux中限制用户访问权限的3种方法
- dlp监控开除员工_说一说DLP的那些事儿
- [转]一个IT人的辞职信:怀着梦想去远行!
- 计算机辅助绘图中测距在哪,cad测距(cad测量距离快捷键)
- AARRR模型——留存:始于价值,合于套路,久于习惯(中)
- python 线性回归显著性检验_回归方程及回归系数的显著性检验_stata显著性检验...
- 打造离线版 123D Catch
热门文章
- js获取图片原始大小
- Ubuntu18.04安装ROS Melodic(解决网络原因,先将所需压缩包下载到本地,然后rosdep update)
- flex 发送到java_(转)java与flex通信
- Linux清除用户登录记录和命令历史方法
- java+yeild+sleep_java之yield(),sleep(),wait()区别详解-备忘笔记[转]
- 用MySQl创建供应商标_建立一个供应商、零件数据库。其中供应商表S(Sno,Sname,Zip - 问答库...
- 原始尺寸_三维扫描检测,铸件三维全尺寸检测,铸件三维扫描服务
- html颜色代码表_html颜色代码表
- 2020-11-25 阿里云CentOS linux源配置脚本 https://mirrors.aliyun.com/repo/
- 2020-08-21 Qt+MSVC 强制中文UTF-8编码