传送门:力扣

所学知识:

1.求和过程,去数值的单数操作,使用while(n)来操作。很强。

int getSum(int n) {int sum = 0;while (n) {sum += (n % 10) * (n % 10);n /= 10;}return sum;}

2.通过unordered_set哈希容器来检测是否进入无限循环中。

if(set.find(sum)!=end()){return false;
}

而且哈希容器所需要的内存空间比数组要高。所以并不是所有题目都无脑使用哈希容器

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<unordered_set>
using namespace std;class Solution {
public:// 取数值各个位上的单数之和int getSum(int n) {int sum = 0;while (n) {sum += (n % 10) * (n % 10);n /= 10;}return sum;}bool isHappy(int n) {unordered_set<int> set;while (1) {int sum = getSum(n);if (sum == 1) {return true;}// 如果这个sum曾经出现过,说明已经陷入了无限循环了,立刻return falseif (set.find(sum) != set.end()) {return false;}else {set.insert(sum);}n = sum;}}
};
int main() {Solution solution;cout << solution.isHappy(19) << endl;
}

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

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

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

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

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

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

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

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

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

  5. 2022-1-18 Leetcode 202.快乐数

    问题就在于如何判断无限循环? 我是要求最多循环20次 class Solution {public:bool isHappy(int n) {int sum = 0;int a = 0;int cou ...

  6. leetcode 202 快乐数

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

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

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

  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. 我对于js注入的理解
  2. python之⾯向对象基础
  3. 鑿婂瓙鏇版祴璇曡崏绋縶29C28FD771BA4B0D8693}
  4. HDFS EditsLog和FsImage日志机制
  5. 线程池应该设置多少核心线程数——Java多线程系列学习笔记
  6. 拓端tecdat|R语言提取时间序列的周期性成分应用EMD,小波滤波器,Baxter过滤器等
  7. android:digits 代码设置,EditText中android:digits失效问题
  8. 删除android电视软件下载,【教程】无需root!卸载小米电视/盒子内置应用竟如此简单...
  9. HTML为图片添加Alt描述,图片标签alt
  10. BC #38 / HDU5208 Where is Bob · 数位dp
  11. 论文流程图——使用VISIO制作论文中的流程图[进阶版]
  12. 字蛛(FontSpider,中文字体压缩器)网页自由引入中文字体
  13. 2014游泳记录 01
  14. 空间实景三维激光点云数据处理服务来了!
  15. css内联样式_如何覆盖内联CSS样式
  16. 51单片机入门教程(1)——点亮一个LED灯
  17. 33家国内外知名的手机广告平台的SDK名单汇总,吐血推荐
  18. 收集一些有用的php函数---from cmstop
  19. otis电梯服务器tt使用说明_奥的斯电梯服务器使用说明
  20. python教你如何跳过验证识别登录并自动发送弹幕

热门文章

  1. 消息队列RocketMQ性能测试案例
  2. 阿里云高级技术专家:面向5G的云网一体及云原生应用实践
  3. 这群程序员疯了!他们想成为IT界最会带货的男人
  4. 阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云
  5. 语义分割概念及应用介绍
  6. ESS控制台发布新功能:创建多实例规格的伸缩配置
  7. API信息全掌控,方便你的日志管理——阿里云推出API网关打通日志服务
  8. 存储基础:磁盘 IO 为什么总叫你对齐?
  9. 程序员应如何理解高并发中的协程
  10. 新时代 新营销 新增长, 纷享销客重磅发布CRM7.0产品,持续赋能企业数字化未来