双指针——快乐数

一.题目描述

202. 快乐数 - 力扣(LeetCode)

二.题目解析

我们要判断一个数是不是快乐数要通过它的三个性质来进行判断。这个数会一直变化,由它的各个位的平方和重新构成这个数。如果这个数在变化的过程中变成了1,那么就是快乐数;如果陷入了循环,一直变不到1,就说明不是快乐数。

 所以,对于一个数n来说有两种情况:1、在进行若干次变换后变成了1;2、在进行若干次变换之后进入了循环。

但其实,我们可以将第一种也归为是进入循环的一种,只不过每一个位置都是1.

三.算法原理 

我们看到上面的情况图有没有联想到之前学习链表的一道题——带环链表。判断一个链表是否带环,我们利用了快慢双指针。这里我们也可以使用快慢指针来实现:

这里其实是在模拟带环链表的性质。我们让slow每次变换一次,fast变换两次即可。

扩展:

这道题之所以简单是因为题目已经告诉我们一定会进行循环,但是如果没有这句话呢?有没有可能n一直变换下去,不会进入循环?

答案是不会的!

四.代码实现

因为我们需要频繁求一个数的每个位的平方和,所以我们将其写成一个函数。

int getSquare(int n)
{int ans = 0;while (n){int index = n % 10;ans += index * index;n /= 10;}return ans;
}bool isHappy(int n)
{int slow = n;int fast = getSquare(n);while (fast != slow){slow = getSquare(slow);fast = getSquare(getSquare(fast));}return slow == 1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/890636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【玩转OCR】 | 腾讯云智能结构化OCR在多场景的实际应用与体验

文章目录 引言产品简介产品功能产品优势 API调用与场景实践图像增强API调用实例发票API调用实例其他场景 结语相关链接 引言 在数字化信息处理的时代,如何高效、精准地提取和结构化各类文档数据成为了企业和政府部门的重要需求。尤其是在面对海量票据、证件、表单和…

nginx-rtmp服务器搭建

音视频服务器搭建 本文采用 nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器 流程 查看当前服务器的nginx版本下载nginx和nginx-rtmp-module源代码重新编译nginx,并进行相关配置(nginx.conf、防火墙等)客户端测试连接测试搭…

借助Aspose.html控件, 使用 Java 编程将 HTML 转换为 BMP

Aspose.HTML for .NET 不仅提供超文本标记语言 ( HTML ) 文件处理,还提供流行图像文件格式之间的转换。您可以利用丰富的渲染和转换功能将SVG文件渲染为PNG、JPG或其他广泛使用的文件格式。但是,我们将使用此C# 图像处理库以编程方式在 C# 中将 SVG 转换…

区块链期末复习1.1:密码学哈希函数

一、哈希函数应该具备的三个特性 1.输入可以为任意长度的字符串 2.产生固定大小输出(比如256位) 3.能进行有效计算。对于n位字符串,可以在O(n)的时间内计算出哈希值。 二.加密哈希函数的三个特性 1.collision-resistance(碰撞阻力&#x…

数学建模两篇小文

1.雪球的融化 设雪球在融化时体积的变化率与表面积成比例,并且在融化过程中它始终为球体。该雪球在开始时的半径为6cm,经过2h后,其半径缩小为3cm。求雪球的体积随时间变化的关系。 解 ~~~~~ 设 t t t时刻雪球的体积为 V ( t ) V(t) V(t)&am…

ET中发送Get请求和Post请求(C#)

应用场景:一个游戏可能会衍生出其他APP或小程序之类的软件,例如王者营地是王者荣耀的官方APP,王者营地提供资讯、赛事、社区、战绩等功能。所以游戏端会和衍生出来的软件端做一些数据互通。这里把软件端称为中台系统。 Get请求和Post请求的区…

华为:数字化转型只有“起点”,没有“终点”

上个月,我收到了一位朋友的私信,他询问我是否有关于华为数字化转型的资料。幸运的是,我手头正好收藏了一些,于是我便分享给他。 然后在昨天,他又再次联系我,并感慨:“如果当初我在进行企业数字…

活着就好20241226

亲爱的朋友们,大家早上好!🌞 今天是26号,星期四,2024年12月的第二十六天,同时也是第51周的第四天,农历甲辰[龙]年十一月初二十二日。在这晨光熹微的美好时刻,愿那和煦而明媚的阳光继…

Android基于Path的addRoundRect,Canvas剪切clipPath简洁的圆形图实现,Kotlin(2)

Android基于Path的addRoundRect,Canvas剪切clipPath简洁的圆形图实现,Kotlin(2) import android.content.Context import android.graphics.BitmapFactory import android.graphics.Canvas import android.graphics.Path import a…

中化信息与枫清科技深化合作:共探“AI+”产业新生态

随着数字化转型的浪潮席卷全球,数据已成为推动创新和经济增长的关键力量。为持续深化数据要素价值挖掘与应用实践,推动打造行业交流平台,驱动产业创新共荣,2024 年 12 月 18 日 -19 日,由中国通信标准化协会主办的“20…

Flink Data Source详解

注意在高版本中SourceFunction以及其子类RichSourceFunction、ParallelSourceFunction等已经被标记为废弃,所以我们要看数据源的实现只需要关注Source接口(org.apache.flink.api.connector.source.Source)。了解Source背后的架构和运行原理有助于我们更好的使用Source,或者…

Matrix-Breakout 2 Morpheus

第一步 信息收集 (1)寻找靶场真实ip arp-scan -l 靶场真实 ip 为192.168.152.154 (2)探测端口及服务 nmap -p- -sV 192.168.52.135 第二步 开始渗透 (1)访问web服务 http://192.168.152.154and http://192.168.52.135:81 发现 81 端口的页面要登录 我们使用 dirb 扫描…

我的AI工具箱Tauri版-ZoomImageSUPIR图像超细节缩放

本教程基于自研的AI工具箱Tauri版进行ZoomImageSUPIR图像超细节缩放。 ZoomImageSUPIR图像超细节缩放 是一款专为图像处理优化的工具,支持图像的高精度放大与缩小操作,满足多场景需求。通过集成 SUPIR(Super-resolution Image Processing wi…

软件工程-【软件项目管理】--期末复习题汇总

一、单项选择题 (1)赶工一个任务时,你应该关注( C ) A. 尽可能多的任务 B. 非关键任务 C. 加速执行关键路径上的任务 D. 通过成本最低化加速执行任务 (2)下列哪个不是项目管理计划的一部分&…

一些基础面试题

重写和重载的区别: 方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二…

访问ipv6的坑

如何访问ipv6站点 本机ipv6回环地址: http://[0:0:0:0:0:0:0:1]:8080/index.html 类似ipv4的127.0.0.1 查看本机的ipv6地址 使用ipconfig命令查看 ac900::27bf:9999:6950:dfa7%15需要去掉%符号后面的内容 ac900::27bf:9999:6950:dfa http://[ac900::27bf:9999:6950:dfa]:80…

Java对象的内存分布(一)

一、概览 在Hotspot虚拟机中,java对象在内存中分布如下图所示: --------------------------------------------- | 对象头 | 实例数据 | 对齐填充 | --------------------------------------------- 对象大小 对象头 实例数据 [填…

docker部署微信小程序自动构建发布和更新

通过 Jenkins 和 Docker 部署微信小程序,并实现自动构建、发布和版本更新,主要涉及以下几个步骤: 设置 Jenkins 环境配置 GitLab 与 Jenkins 的集成构建 Docker 镜像部署和发布微信小程序配置 Jenkins 自动构建 以下是详细的步骤说明&#…

RY2200 One Cell Li-ion and Li-poly Battery Protection IC

1、Features Protection ofCharger Reverse Connection 50mΩ Low RssoN) Internal Power MOSFET Protection of Battery Cell Reverse Connection Delay Times are generated inside Over-temperature Protection …

鼎盛合|高转速无刷风扇方案设计开发

在现代科技飞速发展的时代,人们对于电器设备的性能要求越来越高。风扇作为一种常见的电器,在日常生活和工业生产中都有着广泛的应用。而高转速无刷风扇以其高效、低噪、长寿命等优点,逐渐成为了市场的宠儿。本文将详细探讨高转速无刷风扇的方…