LeetCode_HappyNumber_哈希表的使用
2016-01-15 19:56
483 查看
202. Happy Number
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle
which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 =
1
题意:给定一个数,判断这个数是否是‘幸福的数字’……
这个快乐的数字让我很不快乐……
吐槽完毕……
这里‘福数’定义如下,一个数,他的各位数字的平方和相加,得到一个新的数字,如果这个新的数字能够最后表示
为1,即到此时,新数和原数都是1,那就表示,这个数是‘福数’,反之,如果得到的数无法得到1,即表示,这种
情况会一直计算下去(loops
endlessly),那么返回false。
本题使用哈希表做比较简单,终止条件只要是没有新的数字加入到表中,循环就可以终止。
这样就解决了一个无尽循环的问题,受教了……代码如下:
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle
which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 =
1
题意:给定一个数,判断这个数是否是‘幸福的数字’……
这个快乐的数字让我很不快乐……
吐槽完毕……
这里‘福数’定义如下,一个数,他的各位数字的平方和相加,得到一个新的数字,如果这个新的数字能够最后表示
为1,即到此时,新数和原数都是1,那就表示,这个数是‘福数’,反之,如果得到的数无法得到1,即表示,这种
情况会一直计算下去(loops
endlessly),那么返回false。
本题使用哈希表做比较简单,终止条件只要是没有新的数字加入到表中,循环就可以终止。
这样就解决了一个无尽循环的问题,受教了……代码如下:
public class Solution { public boolean isHappy(int n) { if(n < 0 ){return false;} HashSet<Integer> set = new HashSet<Integer>();//构建一个哈希表 while(n!=1&&!set.contains(n)){<span style="white-space:pre"> </span>//终止条件,新出现的数为1,同时新数不在增加 set.add(n); int m = 0; while(n>0){<span style="white-space:pre"> </span>//计算各位数的平方和 m+=(n%10)*(n%10); n=n/10; } n=m; } if(n==1){return true;} return false; } }
相关文章推荐
- ios 公司账号申请
- Android:Sqlitedatabase学习小结
- 通过adb命令向Android模拟器中导入通讯录联系人
- Android原生游戏开发:使用JustWeEngine开发微信打飞机
- 如此繁荣的移动webapp开发市场:总结当下的一些移动web开发套件
- 12小时包你学会基于ReactMix框架的ReactNativeApp开发(二)基于Css+HTML写第一个app页面
- android锁屏分析
- 通过adb命令向Android模拟器中导入通讯录联系人
- android Volley 上传文件上传图片
- Android应用开发之自定义View触摸相关工具类全解
- android Toast大全(五种情形)建立属于你自己的Toast
- javascript 中caller,callee,call,apply 的概念[转载]
- Java提高学习之Object(5)
- 七牛关于Android SDK jar包依赖情况总结
- android.intent.category.DEFAULT
- Java提高学习之Object(4)
- iTunes Connect(二) —— 应用上架过程中App状态指南
- iOS开发遇到的问题
- iTunes Connect(一) — iOS应用上架到AppStore
- 情景学习Android中的LruCache