「优选算法刷题」:快乐数

一、题目

编写一个算法来判断一个数 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

二、思路解析

首先,我们根据题目中结果为 false 的例子,进行一遍快乐数的操作:

很明显,最终结果回到了曾经出现过的值。

这张图不知能否让各位想起,在数据结构链表中的「判断链表是否有环」这一类题。

当时,我们用的是 双指针 来进行解答的,这道题也可以用上~

而解题的思想,简单来说,就是只要这个数有环,那么慢指针就会有追上快指针的时候。

三、完整代码

class Solution {public int Happy(int x){int sum = 0;while(x>0){sum += (x%10)*(x%10);x /= 10;  }return sum;}public boolean isHappy(int n) {int slow = n;int fast =Happy(n);while(slow!=fast){slow = Happy(slow);fast = Happy(Happy(fast));}return slow == 1;}
}

以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!

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

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

相关文章

汇聚户外露营产业链一手货源,来深圳户外展,高效对接厂商资源

漫步在静谧之地,与自然融为一体,户外露营逐渐走入人们视野,被越来越多的旅游爱好者所青睐。 2024年3月14-16日,中国(深圳)国际户外生活露营展览会(COSP)将在深圳会展中心(福田馆)盛…

Chondrex--Hydroxyproline Assay Kit羟脯氨酸检测试剂盒

胶原(collagen)既是结缔组织的主要成分,同时也是许多组织细胞外基质中主要的结构蛋白。作为哺乳动物体内含量最高、分布最广的功能性蛋白,胶原约占生物体内蛋白质总量的25%至30%,某些生物体甚至…

Nginx 简介

1、概念介绍 Nginx ("engine x") 是一个轻量级、高性能的 WEB 服务器软件和反向代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发…

实战之-Redis代替session实现用户登录

一、设计key的结构 首先我们要思考一下利用redis来存储数据,那么到底使用哪种结构呢?由于存入的数据比较简单,我们可以考虑使用String,或者是使用哈希,如下图,如果使用String,注意他的value&…

海康visionmaster-VM 嵌入:嵌入用户软件界面的方法

描述 环境:VM4.0.0 VS2015 及以上 现象:将 VM 整体嵌入到客户软件界面中? 解答 将 VM 软件整体嵌入到客户软件中,需要利用 Panel 控件,并且需要先启动 VM 软件,具 体代码如下: C# [DllImport(“…

ARM 1.16

TCP的特点 面向连接 面向连接,是指发送数据之前必须在两端建立连接。建立连接的方法是“三次握手”,这样能建立可靠的连接。建立连接,是为数据的可靠传输打下了基础。 仅支持单播传输 每条TCP传输连接只能有两个端点&#…

安全帽/反光衣检测AI边缘计算智能分析网关V4如何修改IP地址?

智能分析网关V4是TSINGSEE青犀推出的一款AI边缘计算智能硬件,硬件采用BM1684芯片,集成高性能8核ARM A53,主频高达2.3GHz,INT8峰值算力高达17.6Tops,FB32高精度算力达到2.2T,硬件内置了近40种AI算法模型&…

C++中基类的析构函数为什么要用virtual虚析构函数

直接的讲,C中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了堆内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生类对象时就不会触发动态…

基于gd32f103移植freemodbus master 主栈

1.移植freemodbus master需要先移植RT-Thread操作系统 GD32F103C8T6移植 RTT Nano 教程-CSDN博客 2.移植freemodbus master协议栈 在移植了RTT以后,我们需要移植就只有串口相关的函数 移植freemodbus master协议栈具体步骤 下载移植freemodbus master协议栈 源码添加协议栈…

随心玩玩(十三)Stable Diffusion初窥门径

写在前面:时代在进步,技术在进步,赶紧跑来玩玩 文章目录 简介配置要求安装部署下载模型启动ui插件安装教程分区提示词插件Adetailer插件提示词的分步采样采样器选择采样器的收敛性UniPC采样器 高分辨率修复 (Hires. fix)图生图ControlNet介绍…

申请开启|成为亚马逊云科技 Community Builder,共建云端社区!

在探索由技术打造的云端世界时,和同行者一起学习,与技术专家共同探讨是开发者成长的最佳助力! 亚马逊云科技开发者社区 Community Builders 为技术爱好者和新兴思想领袖提供技术资源、学习和交流机会,帮助开发者探索、分享技术相关…

常见的系统性能指标:QPS、TPS

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项目…