202. 快乐数【 力扣(LeetCode) 】

devtools/2024/12/22 23:44:03/

一、题目描述

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

「快乐数」 定义为:

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

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

二、测试用例

示例 1:

输入:n = 19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

示例 2:

输入:n = 2
输出:false

提示:

1 <= n <= 231 - 1

三、解题思路

  1. 基本思路:
      根据题目意思,这个数要么最终变成 1 ,要么无限循环。然而 1 也是无限循环的,所以我们只要找到循环的第一个数,判断是不是 1 即可。【这个数为什么不会膨胀呢?首先如果这个数超过 3 位,其百位位权是 100 ,原本值是 百位乘100,而转变后变为 百位乘百位,最高也就 81 ,损失超过 19 ;对于更高位来说,损失更大,所以不会继续膨胀】【其实只有个位是赚的,十位以上都是亏的,因为个位位权为 1 ,个位*个位>=个位*1,而十位位权为 10 ,十位*十位<十位*10
  2. 具体思路:
      每次判断 n 是否重复,没有则将 n 存放到集合中,且 n 变为下一个数;有则结束,并判断 n 是否等于 1 。

四、参考代码

时间复杂度: O ( l o g n ) \Omicron(log\;n) O(logn)
空间复杂度: O ( l o g n ) \Omicron(log\;n) O(logn)

class Solution {
public:int happy(string num) {int n = num.length(), ans = 0;for (int i = 0; i < n; i++) {ans += (num[i] - '0') * (num[i] - '0');}return ans;}bool isHappy(int n) {set<int> s;while (s.count(n) != 1) {s.insert(n);n = happy(to_string(n));}return n == 1;}
};

http://www.ppmy.cn/devtools/102336.html

相关文章

IOS半越狱工具nathanlr越狱教程

简介 nathanlr 是一款半越狱工具&#xff0c;不是完整越狱。 半越狱只能使用一些系统范围的插件。 无法做到完整越狱 Dopamine 越狱一样插件兼容性。 nathanlr支持 iOS 16.5.1 – 16.6.1 系统。 支持 A12 及以上设备。 肯定有人问&#xff0c;为什么仅仅支持这些系统&#xff…

重构多重children数据 减少数据

为了将给定的数据结构从使用 key 和 title 转换为使用 value 和 label&#xff0c;并且确保子节点&#xff08;如果有的话&#xff09;也遵循相同的结构&#xff0c;你可以使用JavaScript的map方法来遍历数组并重构每个对象。这里是如何做的&#xff1a; const originalData …

读书学习笔记 # Datawhale X 李宏毅苹果书 AI夏令营

文章目录 &#x1f6a9;学习目标&#x1f6a9;学习内容&#x1f6a9; Task1.1&#x1f3af;为什么优化会失败&#x1f4cc;因非信息梯度导致的失败 &#x1f3af;局部极小值与鞍点&#x1f3af;临界点及其种类&#x1f3af;如何判断临界值种类&#x1f4cc;更简便的方法来判断 …

Kubernetes集群外如何访问Pod?

Kubernetes集群外如何访问Pod? 1、如何使用?2、注意事项💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes中,要让集群外的流量访问Pod,可以使用NodePort类型的Service。 NodePort为Service分配一个在所有节点上监听的端口,外部流量通过访问任意节点的这个端口即可…

如何处理在学校Linux连接不上服务器

一、问题描述 当我们在周末在图书馆背着室友偷偷学习时&#xff0c;准备好好学习Linux&#xff0c;争取在日后大展拳脚时&#xff0c;却突然尴尬的发现&#xff0c;连接不上服务器&#xff0c;总是出现以下画面&#xff1a; 那么&#xff0c;我们该如何解决问题呢&#xff1f; …

iPhone 16 系列和多款新品将亮相,苹果发布会定档 9 月 10 日|TodayAI

苹果公司&#xff08;Apple&#xff09;已正式宣布&#xff0c;将于 2024 年 9 月 9 日举行年度发布会&#xff0c;地点定于苹果园区的史蒂夫乔布斯剧院。此次发布会的主题为 “It’s Glowtime”。发布会预计将带来众多硬件更新和新产品&#xff0c;最受关注的无疑是 iPhone 16…

互联网时代下的按摩服务革新:一家企业的崛起与行业影响

本文深入探讨了一家成立于2018年的按摩服务企业如何通过互联网思维和创新模式&#xff0c;在按摩服务领域实现突破&#xff0c;达到35亿元的年度营收&#xff0c;并在竞争激烈的市场中稳固其领导地位。文章还将揭示该企业如何应对管理挑战&#xff0c;保持团队活力&#xff0c;…

FPGA实现串口升级及MultiBoot(一)先遣篇

好久没写系列文章了&#xff0c;准备以最近在群里讨论比较多的话题为契机&#xff0c;写个系列文章&#xff0c;文章议题以《串口升级》《MultiBoot》《QuickBoot》为主&#xff0c;辅以《启动流程》《FLASH》《XMODEM》等知识&#xff0c;主线就是7系列FPGA实现串口升级的几种…