[leetcode] 快乐数 E

简介: [leetcode] 快乐数 E

:::details

编写一个算法来判断一个数 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


提示:


1 <= n <= 231 - 1


来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/happy-number

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

var (
    ONE = 1
)
func isHappy(n int) bool {
    hash := make(map[int]struct{})
    for {
        sum := getSum(n)
        if sum == ONE {
            return true
        }
        if _,ok := hash[sum]; ok {
            return false
        } else {
            hash[sum] = struct{}{}
        }
        n = sum
    }
}

func getSum(n int) int {
    sum := 0
    for n > 0 {
        sum += (n%10)*(n%10)
        n /= 10
    }
    return sum
}
相关文章
|
3月前
|
算法
LeetCode题:581. 最短无序连续子数组,242. 有效的字母异位词,202. 快乐数
LeetCode题:581. 最短无序连续子数组,242. 有效的字母异位词,202. 快乐数
28 0
|
5月前
|
算法 Java C++
「LeetCode」202. 快乐数
「LeetCode」202. 快乐数
16 0
|
5月前
|
算法 vr&ar 图形学
☆打卡算法☆LeetCode 202. 快乐数 算法解析
☆打卡算法☆LeetCode 202. 快乐数 算法解析
|
6月前
|
存储 算法 Serverless
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
44 0
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
|
10月前
|
机器学习/深度学习
LeetCode存在重复元素快乐做题
LeetCode存在重复元素快乐做题
41 0
|
12月前
|
存储 人工智能 算法
【leetcode速通java版】05—— 快乐数、两数之和、四数相加II
【leetcode速通java版】05—— 快乐数、两数之和、四数相加II
|
12月前
|
算法
LeetCode每日1题--快乐数
LeetCode每日1题--快乐数
71 0
|
算法 C++
【快乐手撕LeetCode题解系列】—— 复制带随机指针的链表
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【快乐手撕LeetCode题解系列】—— 复制带随机指针的链表~ 都是精华内容,可不要错过哟!!!😍😍😍
61 0
|
算法 C++
【快乐手撕LeetCode题解系列】—— 环形链表 II
哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【快乐手撕LeetCode题解系列】—— 环形链表 II~ 都是精华内容,可不要错过哟!!!😍😍😍
64 0
|
算法 C++
【快乐手撕LeetCode题解系列】——环形链表
思路分析:😍 由图可知,不带环的链表,如果结点个数是奇数个,那么当fast->next为空就可以结束掉循环了;当为偶数个,那么fast = NULL就可以结束循环了。因为满足这两种情况都说明链表不带环。 当出现fast == slow 时,快指针循环一圈后和慢指针相遇,说明链表是带环的。
46 0

热门文章

最新文章