快乐数 | LeetCode-203 | 一个简单的数学题!| Floyd判圈算法练习题 | 哈希集合 | 数学

news/2024/9/22 20:19:18/
🙋大家好!我是毛毛张!
🌈个人首页: 神马都会亿点点的毛毛张

📌如果不知道Floyd判圈算法这道题做起来一点也不快乐!🎈前置知识:图解Floyd判圈算法 | 判断链表或者迭代函数是否有环 | Java代码

🙋大家好!我是毛毛张!
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 < = n < = 2 31 − 1 1 <= n <= 2^{31} - 1 1<=n<=2311

2.题解🍑

2.1 Floyd判圈算法🥭

class Solution {public boolean isHappy(int n) {// 使用快慢指针法检测环的存在。快指针每次移动两步,慢指针每次移动一步。// 初始时,快指针移动两次后的结果,慢指针移动一次后的结果int fast = iterator(iterator(n));int slow = iterator(n);// 快慢指针相遇时,说明存在环while (fast != slow) {fast = iterator(iterator(fast)); // 快指针移动两次slow = iterator(slow);           // 慢指针移动一次}// 快慢指针相遇后,判断是否在环的入口,即是否为1return fast == 1;}// 辅助方法,用于计算数位平方和public int iterator(int n) {int sum = 0;while (n != 0) {int mod = n % 10; // 取出最低位数字sum += mod * mod; // 计算该数字的平方并累加到sumn = n / 10;       // 去掉最低位数字}return sum; // 返回累加的平方和}
}

2.2 哈希集合🍓

class Solution {public boolean isHappy(int n) {// 创建一个集合用于存储计算过程中出现过的数字,防止出现无限循环Set<Integer> set = new HashSet<>();int cur = n;  // 当前需要检查的数字// 循环进行计算,直到发现一个重复的数字while (!set.contains(cur)) {set.add(cur);  // 将当前数字加入集合cur = iterator(cur);  // 计算当前数字每位的平方和}// 如果循环退出时,cur等于1,说明n是快乐数return cur == 1;}// 计算一个数字每位的平方和public int iterator(int n) {int sum = 0;while (n != 0) {int mod = n % 10;  // 取出最低位数字sum += mod * mod;  // 计算该数字的平方并累加到sumn = n / 10;  // 去掉最低位数字}return sum;  // 返回累加的平方和}
}

http://www.ppmy.cn/news/1509155.html

相关文章

杂项复现-中间件

一、Apache HTTPD 多后缀解析漏洞 一、Apache HTTPD 多后缀解析漏洞 在有多个后缀的情况下&#xff0c;只要一个文件含有.php后缀的文件即将被识别成PHP文件&#xff0c;没必要是最后一个后缀。利用这个特性&#xff0c;将会造成一个可以绕过上传白名单的解析漏洞。 1、上传一个…

Qt ts文件详解

Qt ts文件&#xff08;Translation Source file&#xff1a;翻译源文件&#xff09;是Qt框架中用于存储翻译文本和相关上下文信息的一种特定格式文件&#xff0c;它是Qt Linguist&#xff08;语言家&#xff09;工具使用的基础。Qt Linguist是Qt开发工具包中的一个应用程序&…

设计LRU缓存结构

设计LRU(最近最少使用)缓存结构&#xff0c;该结构在构造时确定大小&#xff0c;假设大小为 capacity &#xff0c;操作次数是 n &#xff0c;并有如下功能: 1. Solution(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 2. get(key)&#xff1a;如果关键字 key 存在…

Dcoker网络

Docker网络 一、桥接模式&#xff08;默认&#xff09; 1、概念 桥接模式&#xff1a;部署好docker服务&#xff0c;启动之后&#xff0c;创建一个虚拟网桥&#xff08;docker0&#xff09;&#xff0c;docker0是一个虚拟的网络设备&#xff0c;类似于交换机。每一次运行容器…

day27 贪心算法-基础+发饼干+摆动序列+最大子序和

## 8. Greedy ### 8.1 introduction 核心&#xff1a;通过局部最优达到全局最优。 ### 8.2 455. Assign Cookies Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a …

数学建模——评价决策类算法(层次分析法、Topsis)

一、层次分析法 概念原理 通过相互比较确定各准则对于目标的权重, 及各方案对于每一准则的权重&#xff0c;这些权重在人的思维过程中通常是定性的, 而在层次分析法中则要给出得到权重的定量方法. 将方案层对准则层的权重及准则层对目标层的权重进行综合, 最终确定方案层对目标…

【工作经验】关于远程软件,网络联通方面的异常

NoMachine&#xff0c;ssh&#xff0c;xterm等远程软件 现象1&#xff1a;NoMachine是开机自启的&#xff0c;但是开机后&#xff0c;传输文件失效。 原因&#xff1a;可能是开机时的网络条件不好导致&#xff0c;等网络稳定时&#xff0c;重启NoMachine往往可以解决。 另外&a…

PDF转图片新潮流,4款神器告别手动截图

在这个信息爆炸的时代&#xff0c;PDF文件因为能在各种设备上保持格式不变&#xff0c;成了我们学习和工作中的好帮手。今天&#xff0c;我就诚心诚意地给你推荐几款现在特别流行的PDF转图片工具。这些工具操作起来非常简单&#xff0c;转换速度快&#xff0c;而且转换出来的图…