Skip to content

202. 快乐数 ​

  • 题号:202
  • 来源:LeetCode
  • 难度:简单
  • 标签:哈希表 数学
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(log n) 时间 · O(log n) 空间 · 更新于 2026-09-27

用 Set 检测循环,过程中判断是否到 1

typescript
/**
 * @difficulty easy
 * @tags 哈希表,数学
 * @time O(log n)
 * @space O(log n)
 * @note 用 Set 检测循环,过程中判断是否到 1
 * @202. 快乐数
 */
let n = 2

let set = new Set()
let res = n
while (true) {
    let str = res.toString()
    res = 0
    console.log("str=", str)
    for (let i = 0; i < str.length; i++) {
        console.log("str[i]=", str[i])
        res += (+str[i]) * (+str[i])
    }
    console.log("res=", res)
    if (res === 1) {
        console.log(true)
        break
    }

    if (set.has(res)) {
        console.log(false)
        break
    } else {
        set.add(res)

    }

}

源码:ts/leetcode/202. 快乐数.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm