lintcode,快乐数
来源:互联网 发布:nginx反向代理什么意思 编辑:程序博客网 时间:2024/06/05 07:18
写一个算法来判断一个数是不是”快乐数”。
一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。
样例
19 就是一个快乐数。
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
解题思路:代码比较丑,想法是不断计算平方和然后判断是否为1,用map存每次出现的平方和,一旦再次出现,返回false,如果平方和为1返回true。
一刷ac
public class Solution { /** * @param n an integer * @return true if this is a happy number or false */ public boolean isHappy(int n) { HashMap<Integer,Integer> map = new HashMap<Integer, Integer>(); while(n != 1){ int res = 0; while(n > 0){ int val = n % 10; res += val * val; n = n / 10; } if(res == 1) return true; if(map.containsKey(res)) return false; map.put(res,res); n = res; } return true; }}
看别人用hashset也弄了一下
public class Solution { /** * @param n an integer * @return true if this is a happy number or false */ public boolean isHappy(int n) { HashSet set = new HashSet(); while(n != 1){ int res = 0; while(n != 0){ int val = n % 10; res += val * val; n = n / 10; } if(set.contains(res)) return false; if(res == 1) return true; n = res; set.add(res); } return true; }}
0 0
- LintCode-简单-快乐数
- LintCode-快乐数
- LintCode:快乐数
- LintCode之快乐数
- lintcode,快乐数
- LintCode 快乐数
- lintcode--快乐数
- LintCode之快乐数
- lintcode:快乐数
- LintCode 488快乐数
- [Lintcode] #488 快乐数
- 快乐数-LintCode
- [LintCode 488] 快乐数 (Python)
- Lintcode快乐数问题解析
- lintcode python代码 488 快乐数
- 快乐数
- 快乐数
- 快乐数
- 数据库中文本和图片的插入
- 一个草根站长的SEO经验漫长之路
- Http协议详解
- 计算机中一些简单的概念
- zabbix基于SNMP 协议监控路由器
- lintcode,快乐数
- gradle执行脚本报错unsupported major.minor version 52.0
- BZOJ 3295 [CQOI2011] 动态逆序对
- Java总结篇系列:Java泛型
- HTML5中表单验证的8种方法
- Thrift源码系列----6.TThreadedSelectorServer源码实现
- HIHOCODER 1329 stl
- SpringMVC注记式验证学习笔记——指定验证出错提示信息资源文件及其编码
- html+selenium+webdriver+java,一个前端自动化Demo