福建省建设厅网站施工员查询,制作自己的网站需要什么,flash 网站头部,wordpress版本控制题目链接
力扣#xff08;LeetCode#xff09;官网 - 全球极客挚爱的技术成长平台 法一#xff1a;哈希
使用哈希表循环判断每次经过平方和的数#xff0c;如果为1则直接返回true#xff0c;若之前存在过但不为1则直接返回false
代码
class Solution
{
public:// 计算…题目链接
力扣LeetCode官网 - 全球极客挚爱的技术成长平台 法一哈希
使用哈希表循环判断每次经过平方和的数如果为1则直接返回true若之前存在过但不为1则直接返回false
代码
class Solution
{
public:// 计算快乐数int bitsum(int n){int sum0;while(n){int an%10;suma*a;n/10;}return sum;}bool isHappy(int n) {unordered_setint hash;while(true){int sumbitsum(n);// 如果此次经过bitsum函数之后是1则直接返回trueif(sum1) return true;if(hash.find(sum) ! hash.end()){// 该数存在过但是不为1则直接返回falsereturn false;}else{// 如果不为1也不存在插入哈希表中hash.insert(sum);}nsum;}}
}; 法二快慢指针
题目解析
判断相遇的时候是否为1若不为1则返回false若为1则返回true
代码
class Solution
{
public:// 计算快乐数int bitsum(int n){int sum0;while(n){int an%10;suma*a;n/10;}return sum;}bool isHappy(int n) {// 定义快慢指针int slown,fastbitsum(n);// 只要快指针的数不等于慢指针就继续循环调用while(slow!fast){slowbitsum(slow);fastbitsum(bitsum(fast));}// 看最终相遇位置慢指针是否为1 若不为1则返回falsereturn slow1;}
};