算法----------快乐数 (Java版本)
编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。
解决方法一:利用set 集合属性
class Solution {public boolean isHappy(int n) {if (n == 1) {return true;}Set<Integer> numSet = new HashSet<>();numSet.add(n);int next;while ((next = getNext(n)) > 0 && !numSet.contains(next)){numSet.add(next);n = next;}return next == 1;}public static int getNext(int n){int i;int sum = 0;while (n != 0){i = n % 10;sum += i*i;n = n/10;}return sum;}
}
解决方法二:快慢指针
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;}
}
参考:
https://leetcode-cn.com/problems/happy-number/solution/
算法----------快乐数 (Java版本)相关推荐
- 插入排序算法 java_排序算法实现-插入排序(Java版本)
原标题:排序算法实现-插入排序(Java版本) 插入排序(英语:Insertion Sort)是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到 ...
- JAVA算法:走迷宫回溯算法设计(JAVA版本)
JAVA算法:走迷宫回溯算法设计(JAVA版本) 迷宫数组 int[][] maze = { {0, 1, 0, 0, 0}, {0, ...
- leetcode202快乐数(JAVA版)
编写一个算法来判断一个数 n 是不是快乐数. 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1. ...
- CSDN蓝桥杯算法题——题解Java版本——切面条
目录 题目:切面条 答案目标: 推导过程: 解析过程: 对照Java编码1: 对照Java编码2: 总结: 题目:切面条 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以 ...
- 网易实习面经中的算法题(java版本含注释)
目录 前言 7. 整数反转(中等) 9. 回文数(简单) 14. 最长公共前缀(简单) 20. 有效的括号(简单) 23. 合并K个升序链表(困难) 64. 最小路径和(中等) 103. 二叉树的锯齿 ...
- 算法------零钱兑换(Java版本)
题目 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总金额,返回 -1.示例 1:输入: coins ...
- 算法------------完全平方数(Java版本)
题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少.示例 1:输入: n = 12 输出: 3 解释: 12 ...
- 微博短链接的生成算法(Java版本)
最近看到微博的短链接真是很火啊,新浪.腾讯.搜狐等微博网站都加入了短链接的功能.之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少.短链接的主要职责 ...
- java短链接原理_微博短链接的生成算法(Java版本)
最近看到微博的短链接真是很火啊,新浪.腾讯.搜狐等微博网站都加入了短链接的功能.之所以要是使用短链接,主要是因为微博只允许发140 字,如果链接地址太长的话,那么发送的字数将大大减少.短链接的主要职责 ...
最新文章
- win7修改网络计算机名字,小编分析win7系统修改计算机名字的操作方法
- 一文看尽 27 篇 CVPR 2021 2D 目标检测论文
- 公众号24小时自动吸粉秘密!一次推广终身有客户
- 12-思科防火墙:ASA会话超时
- 腾讯视频如何多倍速播放视频
- c语言 连接哨兵 redis6,Redis哨兵--缓存服务器
- GIS笔记-使用Geoserver搭建MWTS服务(构建离线GIS服务)
- java 处理时间的类_java 日期时间处理类
- 《SQL高级应用和数据仓库基础(MySQL版)》学习笔记 ·003【表的约束、表的CRUD操作(DDL语句)】
- hbase1.2.4安装
- JS基础_js编写位置
- Linux中压缩文件后生成,在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip 。...
- ER Studio 直接导出sql建表
- 微信小程序蓝牙打印开发心得
- 【MindSpore易点通机器人-01】你也许见过很多知识问答机器人,但这个有点不一样
- html5dragw3c,HTML5拖拽功能drag
- 干了半年的java Web,知道自己特别喜欢游戏开发,那就去干吧
- [常用类]Instant类的使用
- 在网页前端调用exe程序并传参
- 【游戏客户端】实现游戏中的小地图
热门文章
- python解压版怎么安装不了_python 连接数据库mysql解压版安装配置及遇到问题
- 如何在 Kubernetes 中对无状态应用进行分批发布
- 目标检测-基于Pytorch实现Yolov3(1)- 搭建模型
- Angular 4.x Events Bubbling
- Mysql 5.7 liunx 忘记密码的补救方法
- 禁止显示“You have new mail in /var/spool/mail/root”
- linux 下 php 安装 Gearman
- 国内做事就要高调——财富人生:邹果庆:中国新蛋网总裁
- 开发部署提速8倍!这款IDE插件了解一下?
- 如何在cnblogs中插入LaTeX数学公式