问题就在于如何判断无限循环?
我是要求最多循环20次

class Solution {public:bool isHappy(int n) {int sum = 0;int a = 0;int count = 0;while(sum != 1){sum = 0;while(n != 0){a = n%10;sum += a*a;n /= 10;}n = sum;count++;if(count > 20)return false;}return true;}
};
//如何判断无限循环始终变不到1

看了下别人的方法,不是快乐数的数字会重复某些过程,因此把过程中的每一个结果记录以下,有重复的肯定不是快乐数。

class Solution {public:bool isHappy(int n) {unordered_set<int> mySet;int sum = 0;int a = 0;while(sum != 1){sum = 0;while(n != 0){a = n%10;sum += a*a;n /= 10;}n = sum;if(mySet.find(sum) != mySet.end())return false;mySet.insert(sum);}return true;}
};

2022-1-18 Leetcode 202.快乐数相关推荐

  1. LeetCode 202. 快乐数【哈希表】

    202. 快乐数 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 1,也可能是 无限 ...

  2. leetcode 202. 快乐数 思考分析(哈希集合与双指针解)

    1.题目 编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变 ...

  3. LeetCode 202. 快乐数(快慢指针)

    1. 题目 2. 解题 一个数经过若干次各位数平方和后,会等于它自己 使用类似环形链表的快慢指针法,最终快慢指针相遇,若不为1则是不快乐数 class Solution {public:int bit ...

  4. leetcode 202 快乐数

    class Solution { public:bool isHappy(int n) {unordered_map<int,bool> m;while(n!=1){m[n]=true;i ...

  5. Leetcode 202. 快乐数 解题思路及C++实现

    解题思路: 用递归的方法,出现1,就返回true,这里用了 unordered_map 来记录是否会出现循环.(也可以用unordered_set) 通过计算余数和商,来得到每个位置数字的平方和.具体 ...

  6. 129. Leetcode 202. 快乐数 (哈希表)

    class Solution:def isHappy(self, n: int) -> bool:set_ = set()while 1:sum_ = self.getSum(n)if sum_ ...

  7. Leetcode 202.快乐数(哈希容器来检测是否出现重复)

    传送门:力扣 所学知识: 1.求和过程,去数值的单数操作,使用while(n)来操作.很强. int getSum(int n) {int sum = 0;while (n) {sum += (n % ...

  8. 算法训练Day6 | LeetCode:242. 有效的字母异位词(数组作哈希表);349. 两个数组的交集(Set作哈希表);202.快乐数 (Set作哈希表);1. 两数之和(Map作哈希表)

    目录 LeetCode242. 有效的字母异位词 方法:数组作哈希表 1. 思路 2. 代码实现 3. 复杂度分析 4. 思考 Leetcode349. 两个数组的交集 方法一:用Set作HashMa ...

  9. LeetCode Algorithm 202. 快乐数

    202. 快乐数 Ideas 快乐数的判断逻辑其实挺简单的,按照定义去循环执行就可以了. 关键是如果不是快乐数怎么结束循环. 我们猜测会有以下三种可能: 最终会得到 1 最终会进入循环 值会越来越大, ...

最新文章

  1. 【动态规划】硬币问题
  2. 微控制器和微处理器的区别
  3. CoreLocation+MapKit系统定位(含坐标以及详细地址)
  4. java string转jsonobject_超赞!终于有网友用Java实现了第三方qq账号登录
  5. python dict.fromkeys()研究
  6. 商业初创公司网站单页模板
  7. 超简单!基于Python搭建个人“云盘”
  8. 非精确运算和精确运算
  9. mysql not in null_MySQL中NOTIN语句对NULL值的处理
  10. 蚂蚁课堂视频笔记思维导图-3期 七、互联网高并发解决方案
  11. NMEA 0183 校验计算方法
  12. Polar SI9000阻抗计算
  13. Linux时间戳与日期之间的转换
  14. 打印机打印的时候会打印计算机用户,打印机打印的时候出现administrator是什么意思...
  15. 在Android开发中遇到的MediaPlayer问题
  16. 红帽Redhat—Linux文本处理
  17. transPlotR 优雅的绘制基因转录本结构
  18. SPI总线时钟的极性(CPOL)与相位(CPHA)
  19. 浅谈关于油麦菜的特性与如何种植优质品种的油麦菜
  20. 【APIO2016】烟火表演

热门文章

  1. pyinstaller将py文件打包成EXE文件(保姆级教程)
  2. 基于Springboot外卖系统03:pom.xml导入依赖+数据库配置文件+Boot启动类+静态资源映射
  3. 文章标题 CoderForces 298A: Snow Footprints(水)
  4. plex 乱码_如何优化电影和电视节目以流畅地播放Plex
  5. bruce eckel.thinking in java_bruce eckel.thinking in java - 百度学术
  6. 二进制加法器的VHDL程序
  7. 二进制加法java实现
  8. Sprite Kit 精灵系统
  9. mysql 逗号金额比较_如何使用MySQL比较两个逗号分隔的字符串列...
  10. [数据结构]Python Heapq库--小顶堆