【leetcode面试经典150题】45. 快乐数(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C++语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致)

【题目描述】

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。

如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

【示例一】


  

【示例二】

输入:n = 2
输出:false

【提示及数据范围】

  • 1 <= n <= 2的31次方 - 1

【代码】

// 使用 “快慢指针” 思想,找出循环:“快指针” 每次走两步,“慢指针” 每次走一步,
// 当二者相等时,即为一个循环周期。
// 此时,判断是不是因为 1 引起的循环,是的话就是快乐数,否则不是快乐数。

class Solution {
public:
    int bitSquareSum(int n) {
        int sum = 0;
        while(n > 0)
        {
            int bit = n % 10;
            sum += bit * bit;
            n = n / 10;
        }
        return sum;
    }
    
    bool isHappy(int n) {
        int slow = n, fast = n;
        do{
            slow = bitSquareSum(slow);
            fast = bitSquareSum(fast);
            fast = bitSquareSum(fast);
        }while(slow != fast);
        
        return slow == 1;
    }
};

相关推荐

  1. leetcode面试经典15045. 快乐C++)

    2024-04-12 22:42:02       21 阅读
  2. leetcode面试经典15044. 两之和(C++)

    2024-04-12 22:42:02       14 阅读
  3. leetcode面试经典150】29.三之和(C++)

    2024-04-12 22:42:02       16 阅读
  4. leetcode面试经典15040. 同构字符串(C++)

    2024-04-12 22:42:02       12 阅读
  5. leetcode面试经典15041. 单词规律(C++)

    2024-04-12 22:42:02       22 阅读
  6. LeetCode 面试经典150 45.跳跃游戏II

    2024-04-12 22:42:02       19 阅读
  7. 面试经典150(42-44)

    2024-04-12 22:42:02       34 阅读
  8. 面试经典150(47-49)

    2024-04-12 22:42:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 22:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 22:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 22:42:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 22:42:02       20 阅读

热门阅读

  1. IP为什么要分类呢

    2024-04-12 22:42:02       19 阅读
  2. linux上blkid命令

    2024-04-12 22:42:02       19 阅读
  3. Kubernetes 部署前内核升级

    2024-04-12 22:42:02       21 阅读
  4. vim插件配置

    2024-04-12 22:42:02       37 阅读
  5. MySQL:MySQL的查询(下)

    2024-04-12 22:42:02       17 阅读
  6. WebKit结构简介

    2024-04-12 22:42:02       14 阅读
  7. 【数据可视化】教程及案例

    2024-04-12 22:42:02       14 阅读