小工具知识网

当前位置: 首页 > 行业知识 > 专题一 - 双指针 - leetcode 202. 快乐数 | 简单难度

行业知识

专题一 - 双指针 - leetcode 202. 快乐数 | 简单难度

2026-11-16 02:26:48 来源:互联网转载

leetcode 202. 快乐数

  • leetcode 202. 快乐数 | 简单难度
    • 1. 题目详情
      • 1. 原题链接
      • 2. 基础框架
      • 2. 解题思路
        • 1. 题目分析
        • 2. 算法原理
        • 3. 时间复杂度
        • 3. 代码实现
        • 4. ���识与收获

          leetcode 202. 快乐数 | 简单难度

          1. 题目详情

          编写一个算法来判断一个数 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 public: bool isHappy(int n) { }};public: int change(int val){ int ret = 0; while(val){ int mod = val % 10; ret += mod * mod; val /= 10; } return ret; } bool isHappy(int n) { unordered_set if(us.find(n) != us.end()) return false; us.insert(n); n = change(n); } return true; }};public: int change(int val){ int newval = 0; while(val){ int mod = val % 10; val /= 10; newval += mod * mod; } return newval; } bool isHappy(int n) { int slow = n, fast = n; do{ slow = change(slow); fast = change(fast); fast = change(fast); } while(slow != fast); return slow == 1; }};

上一篇:机械设备蓝色屏幕调节宝典,解决显示不清晰问题!

下一篇:怎么打卡定位服务器?