哈希-力扣202快乐数

题目

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」 定义为:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。

如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

示例 1:

输入:n = 19
输出:true
解释:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

示例 2:

输入:n = 2
输出:false

提示:

  • 1 <= n <= 2^31 - 1

思路

题目已经告诉我们本题的结果要么是无限循环要么就是得到1,从这我们可以得知只需要寻找前面是否出现过某数即可,该题数据量n明显较大,且不需要计数,找到就停,因此我们可以采用unordered_set该哈希表。

代码实现

class Solution {
public:
	int S(int n){
		int t,sum=0;
		while(n!=0){
			t=n%10;
			sum+=t*t;
			n/=10;
		}
		return sum;//计算每位平方和
	}
	bool isHappy(int n) {//判断是否是快乐数
		unordered_set<int>s;//哈希表,用find函数
		while(1){
			if(n==1)return true;//如果是1就返回
			else if(s.find(n)!=s.end())return false;//如果找到,说明重复
			s.insert(n);//插入该数
			n=S(n);//重置快乐数
		}
	}
};

反思

本题再次使用了unordered_set类型的哈希表,在未知范围和不需计数的查找中效率最快,内置find和insert函数方便查询,通过此题再次深入对哈希表类型的选择。

尾声

unordered_set类型,效率最快,时间复杂度最低,笔者希望本题可以让大家更加熟知类型的挑选和使用,如果觉得笔者写的还不错,记得留下您的点赞关注和支持哦~

相关推荐

  1. 202-快乐

    2024-01-09 09:38:05       66 阅读
  2. 202快乐

    2024-01-09 09:38:05       28 阅读
  3. Leetcode的AC指南 —— 表:202. 快乐

    2024-01-09 09:38:05       84 阅读
  4. 202题“快乐

    2024-01-09 09:38:05       30 阅读
  5. Golang 快乐 leetcode202 map快慢指针法

    2024-01-09 09:38:05       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-09 09:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-09 09:38:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-09 09:38:05       82 阅读
  4. Python语言-面向对象

    2024-01-09 09:38:05       91 阅读

热门阅读

  1. sshpass!Linux下实现自动化ssh密码认证的工具

    2024-01-09 09:38:05       69 阅读
  2. http的tcp连接

    2024-01-09 09:38:05       57 阅读
  3. android系列-SystemServer创建服务

    2024-01-09 09:38:05       62 阅读
  4. 考研个人经验总结【心理向】

    2024-01-09 09:38:05       67 阅读
  5. 美易官方:美联储的深度解读

    2024-01-09 09:38:05       59 阅读
  6. SpringCloud GateWay实现路由限流

    2024-01-09 09:38:05       64 阅读
  7. Python在智能手机芯片研发

    2024-01-09 09:38:05       51 阅读
  8. Python开发神器

    2024-01-09 09:38:05       55 阅读
  9. QT day1

    QT day1

    2024-01-09 09:38:05      60 阅读
  10. 【OpenCV学习笔记02】- 图像入门

    2024-01-09 09:38:05       50 阅读
  11. 167. 木棒(dfs剪枝,经典题)

    2024-01-09 09:38:05       61 阅读