蓝桥杯-快乐数-力扣

2023-11-20

202. 快乐数

编写一个算法来判断一个数 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 <= 2^31 - 1

记录题解()

import java.util.HashMap;
import java.util.Map;

public class HappyNumber{
    public static void main(String[] args) {
        Solution solution = new HappyNumber().new Solution();
        System.out.println(solution.isHappy(2));
    }

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean isHappy(int n) {
        Map<Integer,String> map = new HashMap();
        while (true){
            String s = String.valueOf(n);
            n = 0;
            for (int i = 0; i < s.length(); i++) {
                int c = (int) Math.pow(s.charAt(i)-48,2);
                n += c;
            }
            if (!map.containsKey(n)){
                map.put(n,null);
            }else {
                return false;
            }
            if (n == 1) return true;
        }
    }

}
//leetcode submit region end(Prohibit modification and deletion)

}

力扣官方题解(弗洛伊德查找算法)

class Solution {

     public int getNext(int n) {
        int totalSum = 0;
        while (n > 0) {
            int d = n % 10;
            n = n / 10;
            totalSum += d * d;
        }
        return totalSum;
    }

    public boolean isHappy(int n) {
        int slowRunner = n;
        int fastRunner = getNext(n);
        while (fastRunner != 1 && slowRunner != fastRunner) {
            slowRunner = getNext(slowRunner);
            fastRunner = getNext(getNext(fastRunner));
        }
        return fastRunner == 1;
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯-快乐数-力扣 的相关文章

  • Java:提取具有多个子目录的zip文件[重复]

    这个问题在这里已经有答案了 我有一个 zip Meow zip 它有多个文件和文件夹 如下所示 Meow zip 文件 txt 程序 exe Folder 资源 xml AnotherFolder OtherStuff 更多资源 xml 我
  • “赠送”应用内购买 Android

    有没有办法将 Google Billing 中的应用内购买 赠送 给特定帐户 我把这个问题放在这里是因为如果有一种方法可以以编程方式完成它 那很好 但不是必须的 在官方文档中找不到任何相关内容 我想要这个的原因是因为我的一个应用程序目前处于
  • TarsosDSP 音高分析傻瓜式教程

    我正在开发一个分析声音文件音调的程序 我遇到了一个非常好的 API 称为 TarsosDSP 它提供了各种音高分析 然而 我在设置它时遇到了很多麻烦 有人可以向我展示一些有关如何使用此 API 特别是 PitchProcessor 类 的快
  • 删除最低位

    给定一个二进制数 删除最低位的最快方法是什么 01001001010 gt 01001001000 它将在代码中用于迭代变量的位 伪代码如下 while bits 0 index getIndexOfLowestOrderBit bits
  • 如何将 JTextField 添加到 JFrame 的菜单栏?

    我一直在尝试重载 JMenu 并放入一些自定义代码来支持 JTextField 但进展并不顺利 我在这里的主要目的是在菜单项的右侧添加一个搜索字段 因此 我在左侧有 文件 编辑 帮助 之类的东西 然后在右侧是搜索栏 几乎就像某些浏览器中的谷
  • @Entity 实体无法解析为类型

    学习 Spring MVC 和 Hibernate import javax persistence Column import javax persistence GeneratedValue import javax persisten
  • 无法在 Vaadin Maven 项目上运行 mvn vaadin:compile

    当我运行命令 mvn vaadin compile 时出现此错误 INFO BUILD FAILURE INFO INFO Total time 1 039s INFO Finished at Thu Mar 20 11 35 00 CET
  • 在 Android 应用程序中读取 CSV 文件

    我正在开发一个概念验证应用程序 以便我可以在我正在制作的更大的应用程序中实现该功能 我对 Java 和 Android 开发有点陌生 但希望这个问题不会太简单或太复杂 基本上 我试图从 CSV 文件中读取字符串列表 并使其可用于在应用程序的
  • 更新写入 java 文本文件的对象

    将 Java 对象或列表写入文本文件是可以的 但我想知道如何更新或重写以前写入的对象而不再次写入对象 例如 假设有一个 java util List 有一组对象 然后将该列表写入文本文件 然后稍后该文件将被再次读取并从列表中获取所有对象 然
  • 如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

    有没有人尝试过在 spring boot 中禁用 mongodb 的自动配置 我正在尝试使用 spring data mongodb 来启动 spring boot 使用基于java的配置 使用 spring boot 1 2 1 RELE
  • JPA 的 commit() 方法是否使实体分离?

    我现在一直在搜索JPA实体生命周期 但现在 关于实体生命周期存在一些缺失的点 我在 stackoverflow 的一篇帖子中找到了下图 请记住该图已被投票 根据此图 当我们持久化实体时 它就变成了托管实体 好的 没问题 当我们提交时 数据会
  • 如何使用正则表达式提取子字符串

    我有一个字符串 其中有两个单引号 特点 单引号之间是我想要的数据 如何编写正则表达式从以下文本中提取 我想要的数据 mydata some string with the data i want inside 假设您想要单引号之间的部分 请
  • JAXB 是否支持 xsd:restriction?

  • java:如何仅选择jtable中的一个单元格而不是整行

    在 jTable 中 我希望当用户单击单元格时 这句话会打印在屏幕上 I am cell in row X and column Y 其中 x 和 Y 是单击单元格的行和列 但我得到的是 例如 当我单击第 1 行和第 4 列中的单元格时 我
  • Java HashMap 与 ArrayList 相比的内存开销

    我想知道java HashMap与ArrayList相比的内存开销是多少 Update 我想提高搜索一大包 600 万以上 相同对象的特定值的速度 因此 我正在考虑使用一个或多个HashMap来代替ArrayList 但我想知道 HashM
  • SocketTimeoutException:插入 Google 云端硬盘时读取超时 - 是否可以重试?

    如同Java Google Drive SDK File insert execute 上的 SocketTimeoutException https stackoverflow com questions 17583630 java go
  • 如何在Windows上启动JBoss AS 7.1.1?

    我是新来的JBOSS 我下载了jboss as 7 1 1 Final zip并解压缩该 zip 文件 然后我转到 bin 文件夹并双击standalone bat 但新的 cmd 窗口在 2 3 秒内打开和关闭 我尝试通过cmd启动服务器
  • 为什么浮点数有符号零?

    为什么双打有 0也 0 其背景和意义是什么 0 通常 被视为0 当一个negative浮点数非常接近零 可以考虑0 要明确的是 我指的是算术下溢 http en wikipedia org wiki Arithmetic underflow
  • 尝试从输入流检索文本时应用程序挂起

    情况 我确实查看了您的代码 正如我怀疑的那样 您的问题与您发布的代码完全无关 您的 GUI 完全忽略 Swing 线程规则 并在主 Swing 事件线程 称为Event Dispatch T螺纹或EDT 由于该线程负责所有 Swing 绘图
  • Android 并获取 id 转换为字符串的视图

    在 Android 项目的 Java 代码中 如果您想要视图资源的引用 您可以执行以下操作 View addButton findViewById R id button 0 在上面的 R id button 0 不是一个字符串 是否可以通

随机推荐

  • CocosCreator列表scrollview滑动速度的修改,鼠标滚动速度修改

    由于cocos creator 在pc端 使用scrollview 鼠标滚动速度太慢 原文地址 CocosCreator列表滑动速度的修改 简书CocosCreator列表滑动速度的修改 简书引擎版本 2 2 2 之后升级的2 4 0直接可
  • Android发送POST网络请求

    参考链接 Android 网络请求 网络请求 Okhttp 51CTO博客 android 网络请求 项目中需要通过发送网络请求获取需要显示的数据内容 请求地址和requestbody如上图所示 网络请求用 implementation c
  • Java顺序表

    1 顺序表的定义 顺序表是用物理地址连续存储单元依次存储元素的线性数据结构 一般底层采用数组存储 其中Arraylist也是一个动态修改的数组 于此大致相同 在计算机科学中 数组是由一组元素 值或变量 组成的数据结构 每个元素有至少一个索引
  • JSONUtils

    package com xiolift mdm common util import com alibaba druid util StringUtils import com alibaba fastjson JSON import co
  • SpringBoot 集成 Mybatis

    SpringBoot 集成 Mybatis 详细教程 只有操作 没有理论 仅供参考学习 一 操作部分 1 准备数据库 1 1 数据库版本 C WINDOWS system32 gt mysql V mysql Ver 8 0 25 for
  • Python:sklearn数据预处理中fit(),transform()与fit_transform()的区别

    一 前提 sklearn里的封装好的各种算法使用前都要fit fit相对于整个代码而言 为后续API服务 fit之后 然后调用各种API方法 transform只是其中一个API方法 所以当你调用transform之外的方法 也必须要先fi
  • 送书|入门Python之后还是搞不定面试、做不来项目,推荐读读这本书

    又到了每周三送书的时刻啦 本周送书 Python工匠 Python 能干的事情实在太多了 掰着指头数有点不够用 Web 开发 数据分析 网络爬虫 自动化运维 后台开发 机器学习 如果你知道主攻哪个方向 只需重点去学习 不过 不论哪个方向 P
  • 阿里云sls日志服务的简单监控 php实现

    欢迎加入 新群号码 99640845 由于工作需要最近接触了阿里云的sls日志服务 写了一个基于阿里云sls日志服务和SDK的简单的监控脚本 首先需要开通阿里云的日志服务并且可以通过控制台读取相应日志 这里不就不详细说了 http blog
  • Qemu-KVM基本工作原理分析

    1 理解KVM与Qemu的关系 我们都知道开源虚拟机KVM 并且知道它总是跟Qemu结合出现 那这两者之间有什么关系呢 首先 Qemu本身并不是KVM的一部分 而是一整套完整的虚拟化解决方案 它是纯软件实现的 包括处理器虚拟化 内存虚拟化以
  • 斜体文本测试

    加粗样式
  • Spring:基本概念

    Spring是一款全栈式轻量级开源框架 主要解决的是程序间耦合的问题 两大核心 控制反转IOC 面向切面编程AOP 能够整合众多著名的第三方框架和类库 是实际开发中使用最多的企业应用级开源框架 2017年9月发布了spring的最新版本sp
  • 以太网(Ethenet)协议

    1 定义 以太网协议用于实现链路层的数据传输和地址封装 MAC 由DIX联盟 Digital Intel Xerox 开发 2 封装 原理 由Ethenet II 封装 三个字段 Destination 目的字段 标识目的通信方的MAC地址
  • SpringCloud简单搭建(Erueka、Feign、Gateway)

    父工程 SpringCloud 配置文件 pom xml
  • 语音方向总结-给新人

    一张图总结下语音方向 算法 以及开源工程 给需要找工作以及想深入研究方向同学一张思维图 对应的职业发展路径如下
  • 什么是模块,什么是组件

    相同 都是基于功能划分的单位 比如说完成网络功能的组件 模块 完成统计功能的组件 模块 这二者没有上下级的包含关系 模块可以由多个组件构建 独立的组件也通常由多个模块实现 不同 组件 偏向发行的概念 outside 1 强调的是 跨项目的可
  • 解决opencv读取(保存)不了路径为中文名的图片办法

    读取图片 img cv2 imdecode np fromfile inputpath dtype np uint8 1 保存图片 cv2 imencode jpg rotated img 1 tofile outpath jpg 按自己需
  • Django REST framework框架,前后端分离

    介绍 Web应用前后端分离结构 Web API接口设计的RESTful风格 Django REST framework框架 1 引入Django REST framework 在本章中 我们要大家介绍为什么学习Django REST fra
  • SpringMVC 提示:HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----

    今天在编写文件上传模块时 使用postman 上传文件测试相关功能时 提示如下错误信息 timestamp 1473349676109 status 415 error Unsupported Media Type exception or
  • 最新JavaFx JDK17如何正确的打出可以使用的exe软件包

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 提前需要准备 二 打包步骤 1 现将module info java删除 选中module info java 鼠标右键 Refactor 然后选择saf
  • 蓝桥杯-快乐数-力扣

    202 快乐数 编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果这个过程 结果为 1 那