刷题笔记:力扣第202题-快乐数

发布时间:2026/11/11 21:08:00

刷题笔记:力扣第202题-快乐数 1.本题刚开始没有思路后来发现题目中说如果不是快乐数那么就会陷入循环本质上还是在考察哈希表。完整代码如下1. typedef struct{ 2. int key; 3. UT_hash_handle hh; 4. } HashEntry; 5. 6. // 计算数字每位平方和 7. int getSum(int num){ 8. int sum 0; 9. // 拆分每一位数字 10. while (num){ 11. // 取出个位 12. int tmp num % 10; 13. // 累加平方值 14. sum tmp * tmp; 15. // 去掉个位 16. num / 10; 17. } 18. 19. return sum; 20. } 21. 22. bool isHappy(int n) { 23. // 初始化空哈希表存储出现过的平方和 24. HashEntry* hashTable NULL; 25. while (1){ 26. // 更新n为各位平方和 27. n getSum(n); 28. // 平方和等于1是快乐数直接返回true 29. if (n 1) return true; 30. 31. HashEntry* entry; 32. // 在哈希表查找当前平方和 33. HASH_FIND_INT(hashTable, n, entry); 34. if (entry NULL){ 35. // 未出现过新建哈希节点存入哈希表 36. entry (HashEntry*)malloc(sizeof(HashEntry)); 37. entry-key n; 38. HASH_ADD_INT(hashTable, key, entry); 39. } else { 40. // 当前值重复出现进入循环不是快乐数 41. return false; 42. } 43. } 44. 45. return false; 46. }该算法时间复杂度和空间复杂度均为O(logn)求每位数平方和所需要的时间为logn。2.本题的另一种解法是快慢双指针即弗洛伊德判圈算法类似于力扣第142题-环形链表Ⅱ。快指针每次计算两次即计算两次每位数的平方和慢指针每次计算一次。如果是快乐数那么快指针会先到达1如果不是快乐数则快慢指针会进入循环因为快指针只相对于慢指针多计算了一次所以快慢指针最终一定会相遇。完整代码如下1. // 计算一个数字每一位的平方和 2. int getSum(int num){ 3. int sum 0; 4. // 循环拆分数字每一位 5. while (num){ 6. // 取出个位数字 7. int tmp num % 10; 8. // 累加当前位平方 9. sum tmp * tmp; 10. // 去掉个位数字缩小十倍 11. num / 10; 12. } 13. 14. return sum; 15. } 16. 17. bool isHappy(int n) { 18. // 快慢指针初始化slow走1次平方和fast直接走2次平方和 19. int fast getSum(getSum(n)), slow getSum(n); 20. // 快指针不等于1说明还未找到快乐数终点 21. while (fast ! 1){ 22. // 快指针一次两步 23. fast getSum(fast); 24. fast getSum(fast); 25. // 慢指针一次一步 26. slow getSum(slow); 27. 28. // 快慢指针相遇说明出现循环不是快乐数 29. if (fast slow){ 30. return false; 31. } 32. } 33. // 快指针走到1是快乐数 34. return true; 35. }该算法时间复杂度为O(logn)空间复杂度为O(1)。
延伸阅读

更多相关文章

2026/11/9 19:18:51

TPInAppReceipt核心功能解析:从收据读取到订阅状态判断

TPInAppReceipt核心功能解析:从收据读取到订阅状态判断 【免费下载链接】TPInAppReceipt Reading and Validating In App Purchase Receipt Locally. 项目地址: https://gitcode.com/gh_mirrors/tp/TPInAppReceipt TPInAppReceipt是一款强大的iOS收据处理工具…

2026/11/11 6:24:18

Codex主执行,Claude Code做审查

在对抗式双模型工作流中,Codex与Claude Code承担着截然不同且相互制衡的角色,其核心分工如下表所示: 角色模型核心职责工作模式实现方Codex主动推进任务,负责代码实现、验证与反馈裁决。主动读写,拥有工具执行权限。审…

2026/11/12 6:24:25

未央区特种工操作证值不值得考?周口毕业生必看的报考全攻略

未央区特种工操作证值不值得考?周口毕业生必看的报考全攻略 你有没有遇到过这种情况:刚毕业手里拿着一堆证书,却找不到工作?其实,很多时候问题出在你手里没拿着那张“特种作业操作证”。特别是像未央区这类工业聚集区域,企业招聘时对特种作业证的门槛越…

2026/11/12 6:24:25

长春弱电工证在哪考?考前押题怎么拿?别被中介骗了

长春弱电工证在哪考?考前押题怎么拿?别被中介骗了 不知道去哪报名怕被中介坑?长春弱电工证在哪考?这几乎是每个想考证的小伙伴最头疼的问题。别急,今天就带你一步步理清报名流程、考试要点和避坑技巧,重点告诉你 考前押题 怎么拿,省时省力又靠谱。…

2026/11/12 6:24:25

桃源电工证培训怎么考?全国通用证在手找工作不愁

桃源电工证培训怎么考?全国通用证在手找工作不愁 找工作没证卡在门口,电工证成了硬门槛。特别是现在用人单位对特种作业证要求越来越严, 桃源电工证培训 成了很多人的“敲门砖”。 全国通用…

2026/11/12 6:19:25

哪里可查电工证到期换证流程

你之前考的证在外省能不能转过来?内部消息全在这了 之前考的证在外省能不能转过来?这是很多特种作业人员在换工作、换城市时最担心的问题。特别是像你这样的济源水利工程从业者,电工证是日常工作必备的资质,一旦证书不能顺利转移,不仅影响日常工作,还可…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑