【算法|双指针系列No.3】leetcode202. 快乐数

news/2025/2/9 6:46:23 标签: 算法, 双指针, leetcode

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【LeetCode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。
在这里插入图片描述


点解直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣算法分析
  • 3️⃣代码编写

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 <= n <= 231 - 1

2️⃣算法分析

利用快慢指针的思想,当二者相等时,说明完成了一个循环周期:这个循环周期的完成要么是由快乐书 1 引起的,要么就是因为不是快乐书导致的死循环引起的。前者就是快乐数,而后者则不是快乐数。

3️⃣代码编写

class Solution {
public:

    int bitSum(int n)
    {
        int sum = 0;
        while(n)
        {
            sum += (n%10) * (n%10);
            n /= 10;
        }
        return sum;
    }
    bool isHappy(int n) {
        int slow = n,fast = bitSum(n);
        while(slow != fast)
        {
            slow = bitSum(slow);
            fast = bitSum(bitSum(fast));
        }
        return slow == 1;
    }
};

http://www.niftyadmin.cn/n/5077461.html

相关文章

苹果放出快捷指令专题介绍页面,大大提高了 Mac 使用效率

近日&#xff0c;苹果发布 macOS Sonoma 更新的同时&#xff0c;还上线了“《快捷指令》助你效率倍增”专题页面&#xff0c;其目标是在 Mac 上让好用的 App 更强大。 快捷指令功能可以让设备自动完成常用或繁琐的操作&#xff0c;大大提升 Mac 的效率。 快捷指令能帮你在《邮…

【PPT】ppt里面使用svg图标

要想编辑好的PPT&#xff0c;少不了小图标的美化&#xff0c;图标可以使PPT变得更有趣&#xff0c;更易懂&#xff0c;更美观。 对于png&#xff0c;主要处理它的颜色&#xff0c;可使用【重新着色】功能。 对于jpg&#xff0c;主要处理它的背景&#xff0c;删除背景后同png处…

马六甲海峡对海运的重要性

马六甲海峡是连接印度洋和南中国海的重要航道&#xff0c;也是世界上最繁忙的海峡之一。其位置处于东南亚国家马来西亚和印尼的中心&#xff0c;它的地理位置在东经 9900至10430和北纬 300至730之间。它的宽度约为1.5公里至40公里不等&#xff0c;海峡两侧地势高耸&#xff0c;…

关于Vue中的if使用注意事项

场景&#xff1a; 在使用 element 表格时&#xff08;el-table&#xff09;&#xff0c;有一列为“操作”列&#xff0c;用以动态显示不同按钮&#xff0c;通过插槽获取数据值来判断。 错误&#xff1a; 由于添加的按钮较多&#xff0c;使用的 v-if 较多&#xff0c;当进行条件…

算法题系列13·赎金信(判断字符串是否能由另一个字符串构成)

目录 题目描述 思路 实现 方式1 方式2 题目描述 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransom…

9.HTML

文章目录 1.HTML 常见标签1.1注释标签1.2标题标签: h1-h61.3段落标签: p1.4换行标签: br1.5综合案例: 展示博客1.6格式化标签1.7图片标签: img1.8超链接标签: a1.9综合案例: 展示博客21.10表格标签1.10.1基本使用1.10.2合并单元格 1.11列表标签1.12表单标签1.13无语义标签: div…

element表格合并单元格

table加入属性 :span-method"objectSpanMethod" <el-table:data"dataSource":span-method"objectSpanMethod"borderstyle"width: 100%; margin-top: 20px">mergeCol 是指定要合并的列 data(){return{// 合并规则对象mergeObj…

2023-10-10 mysql-{mysql_rm_table_no_locks}-出错后回滚-记录

摘要: 2023-10-10 mysql-{mysql_rm_table_no_locks}-出错后回滚-记录 mysql_rm_table_no_locks 完整函数代码: /**Execute the drop of a normal or temporary table.@param thd Thread handler@param tables Tables to drop@param if_exists I…