本文介绍: 根据分析,我们发现下一个值可能比自己大的最大数字必须低于 243。因此,我们知道任何循环都必须包含小于 243 的数字,用这么小的数字,编写一个能找到所有周期的强力程序并不困难。如果这样做,会发现只有一个循环:4→16→37→58→89→145→42→20→4。所有其他数字都在进入这个循环的链上,或者在进入 1 的链上。因此,我们可以硬编码一个包含这些数字的散列集,如果我们达到其中一个数字,那么我们就知道在循环中。1.定义一个慢指针指向第一个数,定义一个快指针指向第一个数进行变换后的数,
每日一题(LeetCode)—-哈希表–快乐数
1.题目(202. 快乐数)
如果 n
是 快乐数 就返回 true
;不是,则返回 false
。
示例 1:
示例 2:
提示:
2.解题思路
根据分析我们发现一个数不断替换,要么会变为1,要么会陷入一个循环
思路一:哈希表
思路二:快慢指针法
思路三:数学法
思路来源:力扣官方题解
链接:https://leetcode.cn/problems/happy-number/
3.写出代码
思路一的代码
思路二的代码
思路三的代码
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。