新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/10/26 7:01:22来源:尧图网络
刷题笔记:力扣第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)。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/10/25 3:20:41

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/10/25 3:43:49

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/10/25 4:02:17

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/10/25 5:03:13

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/10/25 3:54:32

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/10/25 5:32:24

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉