当前位置: 首页 > news >正文

力扣202.快乐数

原题链接:202.快乐数

要记住的就是,需要判断元素是否出现过,或者是否在集合里存在,就可以考虑用哈希法去做

因为是每一位都进行平方后相加得到新的数,所以需要单独写一个函数进行每位相加的运算得到最终的sum

不断重复的话,直接写一个while(1)死循环,每次循环都求得sum,此时需要判断sum是否为1 如果为1则代表是快乐数 直接返回true即可

此时直接进行判断,直接进set内查找sum,查看是否存在 如果不存在,则将sum存入set。
如果存在则代表进入了循环,直接返回false即可

关于set.find(sum) == set.end()的解释:
set.find(sum)
如果sum存在于set.,set.find 返回的是指向sum的迭代器,此时迭代器(set.find(sum))==set.end()则为为假,进入else语句内执行
如果sum不存在于set,set.find()返回的就是set.end(),此时if内的条件为set.end() ==set.end(),故为真,所以进入了if语句内执行

全代码:

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){//sum == 1则代表是快乐数 返回truereturn true;}if (set.find(sum) == set.end()) {//如果在set内没有出现过 则存入setset.insert(sum);} else {//如果sum在set内出现过,则代表进入无限循环,直接返回falsereturn false;}n = sum;}}
};
http://www.lryc.cn/news/214081.html

相关文章:

  • iOS Xcode15 适配:Other Linker Flags:-ld_classic
  • springboot苍穹外卖实战:六、redis(Spring Data Redis)
  • sqli 靶场 Level23-Level30 wp
  • 《完蛋!我被美女包围了》突然火了!世界首个开源贡献榜出炉丨 RTE 开发者日报 Vol.75
  • C++ Qt 学习(一):Qt 入门
  • 高性能消息中间件 - Kafka3.x(三)
  • 【八】Linux成神之路
  • 功能测试用例,需要详细到什么程度?
  • VScode远程连接错误:进程试图写入不存在的管道
  • Python测试之Pytest详解
  • uni-app微信小程序打开第三方地图
  • Android NDK开发详解之NDK 使用入门
  • nmap指纹识别要点以及又快又准之方法
  • Rust编程基础之6大数据类型
  • 06 MIT线性代数-线性无关,基和维数Independence, basis, and dimension
  • Kubernetes 概述以及Kubernetes 集群架构与组件
  • GZ035 5G组网与运维赛题第9套
  • 使用Jasypt3.0.3版本对SpringBoot配置文件加密
  • 生成一篇博客,详细讲解springboot的单点登录功能,有流程图,有源码demo
  • Hadoop、Hive安装
  • PHP自定义函数--输入起始日期和解算日期返回日期差几天和 上一个周期的起始结束日期
  • .net 7 上传文件踩坑
  • C++基础算法④——排序算法(快速、归并附完整代码)
  • 高防CDN如何在防护cc上大显神通
  • 解决CSS中height:100%失效的问题
  • 小红书穿搭类种草营销怎么做?纯干货
  • 什么是ARFF文件,以.arff结尾
  • 华为OD机考算法题:计算疫情扩散时间
  • 29岁从事功能测试5年被辞,面试4个月还没到工作......
  • 再记【fatal error C1001: 内部编译器错误】的一个原因